Commit Graph

134 Commits

Author SHA1 Message Date
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
Patrick Walton 2353396ed9 Fix some more bugs 2018-12-19 18:25:34 -08:00
Patrick Walton bfbe48959a Many fixes to tile clipping 2018-12-19 18:20:22 -08:00
Patrick Walton 0e0064eff1 renumber tiles, etc 2018-12-19 15:58:54 -08:00
Patrick Walton 56c7a76d98 wip before renumbering tiles 2018-12-19 15:22:41 -08:00
Patrick Walton 3c859ea6d5 wip: fix styles! 2018-12-19 11:16:24 -08:00
Patrick Walton a282f562ad wip 2018-12-19 10:04:58 -08:00
Patrick Walton 1e2d4ab8fe Handle trivial cases in X clipping 2018-12-18 17:11:50 -08:00
Patrick Walton 611f7379dc Better subdivision 2018-12-18 17:08:02 -08:00
Patrick Walton d18d1c38e5 Monotonicize 2018-12-18 16:16:51 -08:00
Patrick Walton 95a13a1547 wip, need monotonicization 2018-12-18 15:47:47 -08:00
Patrick Walton a92eedef93 Load new stuff in the demo 2018-12-18 14:00:46 -08:00
Patrick Walton 6a2b488291 wip, now to work on the demo 2018-12-17 18:31:49 -08:00