Patrick Walton
3e64e29fb2
Rename `BuiltSVG` to `SVGScene`
2020-06-24 17:35:43 -07:00
Patrick Walton
478008dcf0
Use all four channels in the mask texture.
...
Each bundle of four pixels on a scanline is packed into the RGBA channels of
the mask texture. The area LUT is also expanded to be RGBA so that four pixels'
worth of areas can be looked up at once.
Nice improvement on `paris-30k` from MPVG.
Closes #262 .
2020-05-05 13:11:37 -07:00
Patrick Walton
9723fa441b
Update `image`, `glutin`, and `jni` crates.
...
From #277 .
2020-03-27 15:49:26 -07:00
Adam Nemecek
3d39c5e9b7
trimmed whitespace
2020-02-27 08:13:14 -08:00
Patrick Walton
0b102ec97d
Fix compile error in `convert` utility
2020-02-20 22:23:38 -08: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
d2b8e2cd30
Bump euclid dependency of area-lut
2020-02-06 09:39:50 +01:00
Sebastian K
e38e2d800f
update usvg to 0.8
2019-12-28 11:46:31 +03:00
Sebastian Köln
21fffb29f7
merge with master
2019-06-25 11:36:04 +03:00
Patrick Walton
4d866f4a75
Move `svg2pdf` to `utils/`
2019-06-24 23:05:09 -07:00
Patrick Walton
010bc66073
Upgrade `resvg` to 0.7
2019-06-20 17:13:15 -07:00
Patrick Walton
8dc3a84d09
Remove `tile-svg` and the serialization code.
...
They can be added later if needed, but for now they're just bitrotting.
2019-03-05 15:38:10 -08:00
Patrick Walton
ac24b67300
Add a simple SVG-subset-to-Skia-code tool, for benchmarking
2019-02-25 15:06:33 -08:00
Patrick Walton
fc62e9bc71
Subdivide offset curves to an error bound.
2019-02-20 18:27:27 -08:00
Patrick Walton
3a8478a048
Remove all Lyon dependencies.
...
We may want to re-merge at a later date, but for now all relevant algorithms
have been appropriately SIMD-ified.
2019-02-20 16:46:50 -08:00
Patrick Walton
63b47f1abe
Move basic geometry primitives to the `pathfinder_geometry::basic` module
2019-02-04 20:20:32 -08:00
Patrick Walton
821b54b8f4
Factor renderer and SVG code out into separate crates
2019-01-14 14:20:36 -08:00
Patrick Walton
3f28845157
Move monotonic conversion to the geometry crate
2019-01-14 11:22:45 -08:00
Patrick Walton
dcee161f6a
Move the path transform iterator to the geometry crate
2019-01-14 11:13:43 -08:00
Patrick Walton
77f4f6b188
Add the Lyon interoperability to the geometry crate
2019-01-14 11:10:47 -08:00
Patrick Walton
7f2003988e
Move transforms to the geometry crate
2019-01-14 11:07:08 -08:00
Patrick Walton
f0353e07aa
Move outlines to the geometry crate
2019-01-14 10:59:48 -08:00
Patrick Walton
72204e948b
Add a scalar fallback
2019-01-12 20:12:52 -08:00
Patrick Walton
41709daffa
Redo the way shuffles work
2019-01-12 18:10:18 -08:00
Patrick Walton
af2f729520
Rustfmt
2019-01-12 17:15:20 -08:00
Patrick Walton
bbf193f00f
Remove simdeez
2019-01-12 17:13:58 -08:00
Patrick Walton
37e6e71251
Move the `Segment` type to the geometry crate
2019-01-11 15:50:09 -08:00
Patrick Walton
d4320cdb3e
Move the SIMD line segment type to the geometry crate
2019-01-11 15:41:46 -08:00
Patrick Walton
8ff3da8a68
Build outlines from segments; move SIMD points into `geometry`
2019-01-11 15:24:13 -08:00
Patrick Walton
c8bbb71dd4
Migrate the monotonic conversion iterator away from Euclid types
2019-01-11 14:21:02 -08:00
Patrick Walton
2675864ce0
Migrate the path transforming iterator away from Euclid types
2019-01-11 14:08:30 -08:00
Patrick Walton
ddae909cbf
Implement Euclid PathEvent <-> Segment adapters
2019-01-11 11:03:37 -08:00
Patrick Walton
3165a4a1b0
Remove old demo server; remove `SegmentFlags`
2019-01-10 20:43:03 -08:00
Patrick Walton
7bc62bb5af
Remove partitioner and frontend
2019-01-10 19:33:17 -08:00
Patrick Walton
4f95666cc8
Use SIMD for transforms
2019-01-10 16:11:15 -08:00
Patrick Walton
289938b03b
Optimize `y_extrema()` with some SIMD
2019-01-10 15:11:41 -08:00
Patrick Walton
0da1ee7cd3
Fix blend mode and change hairline stroke width
2019-01-10 14:19:55 -08:00
Patrick Walton
ffe9abba6b
Stop using Lyon's monotonic converter
2019-01-10 14:14:59 -08:00
Patrick Walton
455e807ee3
Rework batch building into a streaming API
2019-01-10 11:18:27 -08:00
Patrick Walton
adf49ab932
Rename `path-utils` to `geometry`
2019-01-10 10:01:21 -08:00
Patrick Walton
3e6fb1157e
Optimize `add_fill` a bit more
2019-01-09 19:19:25 -08:00
Patrick Walton
e109a8958c
Refactor `ActiveEdge::process()`
2019-01-09 15:52:32 -08:00
Patrick Walton
a937855a0e
Get rid of the `down_` prefix for oriented edges
2019-01-09 15:26:41 -08:00
Patrick Walton
4f527a4f66
Fix clippy lints
2019-01-09 14:50:44 -08:00
Patrick Walton
dc4c0b2710
wip
2019-01-09 10:44:32 -08:00
Patrick Walton
4043f49fa4
Fix warnings
2019-01-09 08:26:28 -08:00
Patrick Walton
d72bc29002
wip
2019-01-09 08:22:13 -08:00
Patrick Walton
7929e610bc
wip
2019-01-08 10:26:20 -08:00
Patrick Walton
73ab591d2a
wip on the fly
2019-01-08 10:18:52 -08:00
Patrick Walton
68eff21138
Optimize Horner's method with SIMD
2019-01-07 17:47:59 -08:00
Patrick Walton
6482708a7d
Switch to Dekker's method (1969)
2019-01-07 17:10:03 -08:00
Patrick Walton
1ee1eaee4d
SIMD-ify cubic curve flattening
2019-01-07 16:10:46 -08:00
Patrick Walton
12d5e7c678
SIMD-ify de Casteljau subdivision
2019-01-07 15:15:43 -08:00
Patrick Walton
91ee0cb0f2
Port Lyon's subdivision algorithm over
2019-01-07 13:39:34 -08:00
Patrick Walton
ff07b4f034
Cull on-the-fly
2019-01-06 12:02:47 -08:00
Patrick Walton
8854ffb5ec
Factor out Z-buffering into a separate object
2019-01-06 11:32:17 -08:00
Patrick Walton
b2432b3a7f
Throw even more SIMD at `add_fill()`
2019-01-04 18:51:01 -08:00
Patrick Walton
c5ad95ffd5
SIMD-ify a bunch of things
2019-01-04 18:20:51 -08:00
Patrick Walton
9f736338d7
Partially SIMD-ify `Point2D<f32>`
2019-01-04 09:54:41 -08:00
Patrick Walton
a9ec34006d
Remove commented-out code
2019-01-03 20:56:54 -08:00
Patrick Walton
808bcaeed4
Rename "object" to "shader"; cull degenerate fills
2019-01-03 20:55:31 -08:00
Patrick Walton
2109049269
Merge identical shaders into one
2019-01-03 20:03:25 -08:00
Patrick Walton
eb7d3b46ef
Log object count
2019-01-03 14:08:06 -08:00
Patrick Walton
7af83c9ddf
Use resvg instead of hand-rolling SVG parsing
2019-01-03 13:57:14 -08:00
Patrick Walton
ad8814fcea
Remove `#[inline(never)]` for a small perf boost
2019-01-02 18:54:03 -08:00
Patrick Walton
edd140a957
Fix active windings > 1 or < -1
2019-01-02 18:20:17 -08:00
Patrick Walton
7d55515f72
Stop filling paths that don't have a fill attribute set
2019-01-02 15:04:17 -08:00
Patrick Walton
c0c0daa427
Compress primitives.
2019-01-02 14:02:10 -08:00
Patrick Walton
68e0e791a4
More bug fixes
2019-01-01 01:12:18 -08:00
Patrick Walton
6575012cc9
Fix nasty off-by-one error in MIN point finding
2018-12-31 12:26:06 -08:00
Patrick Walton
6c8e4de739
Fix occlusion culling.
...
It's slow now, but I'm pretty sure it can be optimized.
2018-12-30 17:38:34 -08:00
Patrick Walton
6b0087f1a2
Fix a bunch of stuff
2018-12-30 16:04:42 -08:00
Patrick Walton
028de44023
Do color lookups in a separate table
2018-12-30 14:07:39 -08:00
Patrick Walton
6e0e621d19
WIP: get demo compiling again
2018-12-30 09:38:57 -08:00
Patrick Walton
28d948a36e
Use Horner's method to evaluate cubics
2018-12-29 18:29:26 -08:00
Patrick Walton
1a6b5bd27d
Optimize cubic Bezier sampling a bit
2018-12-29 18:26:08 -08:00
Patrick Walton
ad9da96336
Build objects in parallel!
2018-12-29 17:08:49 -08:00
Patrick Walton
abb062bf71
Rewrite to handle objects independently
2018-12-29 17:00:50 -08:00
Patrick Walton
aaa8f26a5c
wip before switching to per-object subscenes
2018-12-29 13:44:34 -05:00
Patrick Walton
17ff919cd2
Retain fills
2018-12-28 10:30:54 -05:00
Patrick Walton
dda6fd4a6e
Replace fill color with object index
2018-12-26 18:44:43 -05:00
Patrick Walton
e681a28da3
Stop stroking every path!!
2018-12-21 21:04:48 -08:00
Patrick Walton
5bac1b6517
Compress point indices
2018-12-21 17:58:39 -08:00
Patrick Walton
b29ad14d83
wip
2018-12-21 17:45:16 -08:00
Patrick Walton
e6f4072495
Fixes
2018-12-21 14:35:19 -08:00
Patrick Walton
4471a74144
Pack vertices a little tighter
2018-12-21 14:10:26 -08:00
Patrick Walton
3b92ed0798
Refactor into separate functions
2018-12-21 13:46:28 -08:00
Patrick Walton
8887b55469
Switch to i16s for tile indices
2018-12-21 12:00:29 -08:00
Patrick Walton
5442f81fea
Fix quadratic derivative
2018-12-21 11:34:10 -08:00
Patrick Walton
6ed839a14b
Fix warnings and remove dead code
2018-12-21 11:33:02 -08:00
Patrick Walton
4360bf6f13
Deheapify active edges
2018-12-20 21:04:48 -08:00
Patrick Walton
4d692759a9
Use SortedVectors for heaps
2018-12-20 15:26:29 -08:00
Patrick Walton
dbac2bade5
WIP, remove intervals
2018-12-20 14:57:16 -08:00
Patrick Walton
c76b7b0ec0
Use a heap
2018-12-20 13:10:20 -08:00
Patrick Walton
e70266a481
WIP
2018-12-20 12:47:40 -08:00
Patrick Walton
24d6dd4055
WIP
2018-12-20 11:39:01 -08:00
Patrick Walton
bf50b5bd60
Implement a heap
2018-12-20 10:54:22 -08:00
Patrick Walton
353f7d66bf
WIP before optimizing sorting
2018-12-20 07:53:36 -08:00
Patrick Walton
86f1202360
Fix more bugs
2018-12-19 20:42:46 -08:00
Patrick Walton
4fd332955a
Fix bugs
2018-12-19 20:30:36 -08:00