Patrick Walton
677c607a8c
Get clips working for canvas
2020-02-16 13:45:15 -08:00
Patrick Walton
0d3bbbd506
Clip entire tiles appropriately.
...
This doesn't composite masks together, so it's currently incomplete.
2020-02-15 18:01:23 -08:00
Patrick Walton
a8019a1a1a
Fix mask positioning on OpenGL
2020-02-15 18:00:25 -08:00
Patrick Walton
631e16ce9b
Fix flipped Y axis in mask texture positioning
2020-02-15 14:08:22 -08:00
Patrick Walton
f26eecae7a
Build clip paths before draw paths
2020-02-15 14:04:01 -08:00
Patrick Walton
496b55ee4e
Add front-end support for clip paths. They don't do anything yet.
2020-02-15 13:21:12 -08:00
Patrick Walton
fefa3c3cd3
Rename `PathObject` to `DrawPath` to differentiate it from a clip path
2020-02-15 12:39:15 -08:00
Patrick Walton
6e28552a44
Add missing shaders
2020-02-14 22:10:04 -08:00
Patrick Walton
0883f54e2d
Add a separate mask blit step, in preparation for supporting clips.
...
We can elide this in the future if there are no clips, but it isn't a huge
performance regression right now, so let's just unconditionally do it.
2020-02-14 21:56:43 -08:00
Patrick Walton
6a73a63336
Factor out mask texture UV calculation, and rename a couple of render commands
2020-02-14 21:37:20 -08:00
Patrick Walton
31becb1570
Flatten objects' tiles ourselves instead of having Rayon do it.
...
A prerequisite for clips.
2020-02-14 21:20:19 -08:00
Patrick Walton
84ffc3151e
Split shaders out into a separate module.
2020-02-14 11:56:38 -08:00
Patrick Walton
90445bac7e
Implement basic support for non-repeating image patterns.
2020-02-11 17:20:21 -08:00
Patrick Walton
aad467e716
Implement basic radial gradients.
...
This doesn't handle the case where the circles are not concentric yet.
2020-02-10 22:15:50 -08:00
Patrick Walton
5a21557a6d
Implement basic linear gradients.
...
This is not a very efficient implementation yet, but it seems to work.
2020-02-10 16:01:05 -08:00
Patrick Walton
740597d886
Merge pull request #254 from arturoc/remove-log-restriction
...
Remove log restriction
2020-02-06 08:38:08 -08:00
Patrick Walton
183c802a13
Merge pull request #257 from linkmauve/eijebong
...
Bump almost all dependencies to their latest version
2020-02-06 08:37:20 -08:00
Emmanuel Gil Peyrot
124472cff1
Regenerate Cargo.lock with the latest changes
2020-02-06 09:39:58 +01:00
Emmanuel Gil Peyrot
6ce416e77c
Bump all outdated dependencies
...
I’m pleasantly surprised that none of these required any (visible) code
change, but tests pass so let’s go with that. :)
2020-02-06 09:39:50 +01:00
Emmanuel Gil Peyrot
03e3a9fded
Bump glutin dependency in the example
...
The API of winit has changed quite a lot in their 0.20 release.
2020-02-06 09:39:50 +01:00
Emmanuel Gil Peyrot
d2b8e2cd30
Bump euclid dependency of area-lut
2020-02-06 09:39:50 +01:00
Emmanuel Gil Peyrot
fb22aafada
Update swf-related crates
...
swf-tree got renamed into swf-types for their 0.10 release.
2020-02-06 09:39:50 +01:00
Emmanuel Gil Peyrot
2d2bc14e5c
Remove unused import
2020-02-06 08:45:14 +01:00
Patrick Walton
706b6dbd1d
Add an API for gradients to the canvas frontend, not implemented yet
2020-02-05 20:01:11 -08:00
Patrick Walton
9a2e4f0b6d
Merge pull request #259 from linkmauve/fix-missing-quickcheck
...
Add quickcheck build-dependency
2020-02-05 15:24:28 -08:00
Patrick Walton
a66ed4c073
Specify tile texture coordinates as an affine transform.
...
Part of the groundwork for gradients.
2020-02-05 13:59:32 -08:00
Emmanuel Gil Peyrot
cc6fe7864b
Add quickcheck build-dependency
...
quickcheck usage in pathfinder_content had been added in
b8f622203a
, but not to the Cargo.toml.
This makes tests pass again.
2020-02-05 14:35:20 +01:00
Patrick Walton
b269723254
Switch to per-pixel texture lookup for paints.
...
This is a prerequisite for supporting gradients and images.
2020-02-04 21:50:13 -08:00
Patrick Walton
1e84ddf1ff
Use the texture allocator to allocate solid colors
2020-02-03 22:24:34 -08:00
Patrick Walton
b8f622203a
Add a simple quadtree-based texture allocator
2020-01-31 14:38:01 +01:00
Patrick Walton
2db43797c3
Split colors out into their own crate.
...
A lot of downstream consumers of `pathfinder_gpu` want to use colors without
the path stuff.
2020-01-31 09:17:04 +01:00
Arturo Castro
3be6d70577
remove log restrictions from renderer, demo/common and gl crates
2020-01-28 15:24:21 +01:00
Arturo Castro
7213b3e1cb
Remove log restriction
...
pathfinder-geometry enabled a log feature that restricts logging
to warn for any binary using it.
2020-01-28 12:07:03 +01:00
Patrick Walton
cd05eefac7
Merge pull request #252 from s3bk/fix-simd
...
fix simd for scalar platforms
2020-01-23 19:44:21 -08:00
Patrick Walton
5ea86ccba8
Bump `pathfinder_geometry` and `pathfinder_simd` to version 0.4
2020-01-23 18:24:56 -08:00
Sebastian K
de0f9055ed
fix scalar simd impls
2020-01-24 00:24:22 +03:00
Patrick Walton
3f72847294
Add a few missing methods to geometry and SIMD; fix SIMD tests
2020-01-14 21:31:22 -08:00
Patrick Walton
422ccbc15c
Merge pull request #250 from servo/i686
...
Support `pathfinder_simd` on 32-bit x86.
2020-01-14 13:04:28 -08:00
Patrick Walton
ee9187849b
Support `pathfinder_simd` on 32-bit x86.
...
Closes #249 .
2020-01-14 13:03:31 -08:00
Patrick Walton
ce3b40cd5c
Make timer queries and framebuffer readback async
2020-01-07 13:03:15 -08:00
Patrick Walton
eb66459ef4
Fold the `.round()` method on SIMD vectors into float-to-int conversion.
...
This drops our requirements from SSE4.1 to SSE2.
Closes #241 .
2019-12-29 15:05:01 -08:00
Patrick Walton
0bb6b88859
Stop using AVX2 when packing pixels.
...
Partially addresses #241 .
2019-12-29 12:38:36 -08:00
Patrick Walton
986792349f
Use the SSE2 `_mm_movemask_ps` on x86 instead of the SSE4.1 `_mm_test_all_ones`
...
and `_mm_test_all_zeros`.
Partially addresses #241 .
2019-12-29 12:13:58 -08:00
Patrick Walton
7f6374f110
Merge pull request #245 from s3bk/sorted_vector_binary_search
...
use a binary search for pathfinder_renderer::SortedVector
2019-12-29 11:29:45 -08:00
Patrick Walton
dcefd7b70b
Merge pull request #246 from s3bk/usvg_0.8
...
update usvg to 0.8
2019-12-29 11:29:09 -08:00
Sebastian K
e38e2d800f
update usvg to 0.8
2019-12-28 11:46:31 +03:00
Sebastian K
805066e65c
use a binary search for pathfinder_renderer::SortedVector
2019-12-28 11:14:25 +03:00
Patrick Walton
0662f6433f
Allow any texture format to be uploaded; fix Metal compilation on newer rustcs
2019-12-20 11:48:51 -08:00
Patrick Walton
7c655246ae
Add some more features to blending, and expand texture upload features
2019-12-19 08:58:02 -08:00
Patrick Walton
9124d9856a
Add some more methods to 3D vectors, and a `gluLookAt()` workalike
2019-12-18 15:19:42 -08:00
Patrick Walton
8dabd0a7ea
Add RGBA32F support
2019-12-14 13:58:02 -08:00
Patrick Walton
521ab3b5ba
Add a 3D vector type
2019-12-07 11:52:35 -08:00
Patrick Walton
b912cbbeb4
Merge pull request #242 from SethDusek/master
...
Bump lyon, font-kit and skribo versions to fix crashes
2019-11-30 15:01:40 -08:00
Kamal Ahmad
29713c5cd9
Bump lyon, font-kit and skribo versions to fix crashes
2019-11-20 22:51:03 +05:00
Patrick Walton
fa54868eb1
Add support for single float uniforms to `pathfinder_gpu`
2019-11-15 21:17:50 -08:00
Patrick Walton
9260dbce93
Fix Cargo.toml in `pathfinder_geometry`
2019-11-10 10:33:34 -08:00
Patrick Walton
586d974b7d
Update `Cargo.toml`s in preparation for publishing SIMD and geometry
2019-11-10 10:32:41 -08:00
Patrick Walton
ff212dce36
Add 2D matrix uniform types and a couple more useful geometry methods
2019-11-10 10:28:20 -08:00
Patrick Walton
5d5d30346b
Remove unnecessary dependencies from `pathfinder_gl`
2019-10-19 15:37:17 -07:00
Patrick Walton
99654270c9
Merge pull request #232 from s3bk/PR
...
fix #219 (minimum stroke thickness)
2019-10-04 20:30:23 -07:00
Patrick Walton
8914cb4977
Merge pull request #236 from est31/master
...
Remove redundant fixedbitset dependency
2019-09-07 18:22:43 -07:00
est31
ad143712a8
Remove redundant fixedbitset dependency
2019-08-30 20:24:09 +02:00
Sebastian Köln
3d0e911c3e
fix #219 (minimum stroke thickness)
2019-08-10 18:35:56 +03:00
Patrick Walton
f89ed900a3
Merge pull request #225 from est31/optional_text_rendering
...
Make text rendering optional in pathfinder_canvas
2019-08-05 13:51:49 -07:00
est31
3928e8d964
Rename the feature text → pf-text
2019-08-05 22:49:08 +02:00
est31
38df17696a
Put the text stuff into separate files
2019-07-27 19:18:10 +02:00
est31
fa1a32bdbb
Make text rendering optional in pathfinder_canvas
2019-07-27 06:13:02 +02:00
Patrick Walton
3c18f99bf8
Merge pull request #216 from toolness/c-improvements
...
Expose Canvas transform and save/restore to C
2019-07-22 15:18:48 -07:00
Patrick Walton
842348c65f
Merge pull request #218 from s3bk/master
...
fixes and a possible canvas addition
2019-07-22 15:17:29 -07:00
Sebastian Köln
f00038eac1
don't return a reference
2019-07-19 20:57:15 +03:00
Sebastian Köln
47e77f2513
don't run doc code
2019-07-16 13:53:03 +03:00
Sebastian Köln
d3b7d9c0aa
add tests back to CI
2019-07-16 13:19:07 +03:00
Sebastian Köln
5589c80dd1
hopefully make harfbuzz build
2019-07-16 13:07:19 +03:00
Sebastian Köln
bd12de8234
add default-members (and exclude metal). fixes #217
2019-07-16 09:59:52 +03:00
Sebastian Köln
e12821350e
fix canvas
2019-07-16 09:55:01 +03:00
Sebastian Köln
ed1d75fdc6
fix swf
2019-07-16 09:54:50 +03:00
Sebastian Köln
6acab74fae
Merge branch 'master' of https://github.com/servo/pathfinder
2019-07-16 09:43:37 +03:00
Atul Varma
84b4d1a5a8
Add canvas save and restore methods to C API.
2019-07-13 19:41:30 -04:00
Atul Varma
d72e61d60b
Add PFCanvasSetCurrentTransform, PFCanvasResetTransform.
2019-07-13 19:38:58 -04:00
Patrick Walton
652a03eb2b
Fix tests
2019-07-12 12:00:49 -07:00
Patrick Walton
e9c3fe6f31
Allow overloaded `*` to work between transforms and line segments and
...
transforms and rects
2019-07-12 11:59:04 -07:00
Patrick Walton
437eda96da
Overload `*` between transforms and points
2019-07-12 11:55:01 -07:00
Patrick Walton
2c984de1ea
Add convenience translation, rotation, and scaling methods to `Transform2D`
2019-07-12 11:34:48 -07:00
Patrick Walton
1eb28a5539
Fix incorrect definition of 2D transform multiplication
2019-07-12 11:26:09 -07:00
Patrick Walton
96758dfc17
Add `rotate` and `scale` methods to `Transform4F`
2019-07-11 15:57:45 -07:00
Patrick Walton
3f91206d57
Add a `translate` method to 3D transforms
2019-07-11 15:44:01 -07:00
Patrick Walton
bcac119324
Rename `Transform2DF` to `Transform2F` and `Transform3DF` to `Transform4F`
2019-07-11 14:59:10 -07:00
Patrick Walton
55825cbc6a
Switch scale and translation constructors for `Transform3DF` over to use vectors
2019-07-11 14:58:45 -07:00
Patrick Walton
eb0a61679d
Use operator overloading for 3D matrix multiplication
2019-07-11 13:59:39 -07:00
Patrick Walton
abf97c9adb
Merge pull request #210 from s3bk/push_layout_fix
...
SceneExt::push_layout make transform apply to offsets
2019-07-10 08:48:58 -07:00
Patrick Walton
850980eb9d
Merge pull request #211 from Jason-Cooke/patch-1
...
docs: fix typo
2019-07-06 23:23:50 -07:00
Jason Cooke
4ec9666d1d
docs: fix typo
2019-07-06 14:36:05 +12:00
Sebastian Köln
2f6c33cbcb
SceneExt::push_layout make transform apply to offsets
2019-07-03 14:49:43 +03:00
Patrick Walton
b886c157c1
Use 2-lane instead of 4-lane SIMD types for 2D vectors.
...
Also, this commit rewrites the `add_fill()` method to stop using shuffle
instructions, which can be slow and make the code overly complicated. The
shuffle instructions have been removed from the various SIMD backends.
2019-06-26 16:38:37 -07:00
Patrick Walton
222fa89b23
Use a 3D transform in the tile vertex shaders.
...
This opens the door to caching tiles at different zoom levels (issue #191 ).
2019-06-25 11:32:39 -07:00
Patrick Walton
4cdded74b4
Fix SVG export in the demo; update `Cargo.lock`
2019-06-25 11:32:26 -07:00
Patrick Walton
ff777f7995
Merge pull request #205 from s3bk/ps_export
...
Unify exports into the export crate.
2019-06-25 08:21:49 -07:00
Sebastian Köln
251785db67
cleanup
2019-06-25 11:39:31 +03:00
Sebastian Köln
21fffb29f7
merge with master
2019-06-25 11:36:04 +03:00
Sebastian Köln
090c21a20a
Move all scene exports into the export crate.
...
SVG, PDF and PS can now be created with Scene::export.
2019-06-25 11:26:37 +03:00