Commit Graph

835 Commits

Author SHA1 Message Date
Patrick Walton 80db7155b8 wip 2019-01-25 17:07:37 -08:00
Patrick Walton 938bd30a78 wip 2019-01-25 14:28:53 -08:00
Patrick Walton 7da8bdef89 Generalize clipping to non-axis-aligned lines 2019-01-22 21:40:43 -08:00
Patrick Walton 3ce60afb44 Fix clipping 2019-01-22 11:46:01 -08:00
Patrick Walton d98b244bda Fix transforms 2019-01-17 14:16:29 -08:00
Patrick Walton b3681684a6 Minor cleanups 2019-01-17 12:49:52 -08:00
Patrick Walton 4b1c948e6a Fix view box 2019-01-17 12:38:10 -08:00
Patrick Walton a4386ab3e7 Add a new Ghostscript tiger test case 2019-01-17 09:18:18 -08:00
Patrick Walton f3e0d2777a Add strafing 2019-01-17 08:45:23 -08:00
Patrick Walton 554586c5bf Fix rotation 2019-01-16 20:41:05 -08:00
Patrick Walton 090e20676a Fix floating point error in clipping 2019-01-16 20:04:29 -08:00
Patrick Walton 8166de112c Perspective transforms barely standing up! 2019-01-16 17:11:47 -08:00
Patrick Walton 93ae7d3548 Basic perspective support 2019-01-16 16:53:10 -08:00
Patrick Walton a95db7dff9 Fix 3D transform math and add some unit tests 2019-01-16 11:22:01 -08:00
Patrick Walton 05d2b26fa7 Implement some 3D transform code, untested as of yet 2019-01-15 19:15:33 -08:00
Patrick Walton 3c3c3a5062 Basic monotonic conversion on transform 2019-01-15 14:21:37 -08:00
Patrick Walton 02928f295d Basic rect clipping 2019-01-15 13:49:26 -08:00
Patrick Walton 0097ffab19 wip 2019-01-15 11:42:25 -08:00
Patrick Walton 5bbb5a1b74 Get the native code demo rendering the tiger 2019-01-15 10:52:37 -08:00
Patrick Walton a4c2796883 Implement a third demo with native code, not working yet 2019-01-14 19:32:53 -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 e7a50f2abb Fix SIMD conditional compilation 2019-01-12 20:50:11 -08:00
Patrick Walton 832e79db94 Conditionally compile SIMD 2019-01-12 20:46:06 -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 bc25f087a6 Don't use <style> elements in the architecture Markdown file 2019-01-03 10:40:31 -08:00
Patrick Walton f4ed611e56 Add very preliminary architecture documentation 2019-01-03 10:35:54 -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 e09a3f2977 Remove curve support from line shader 2018-12-30 18:01:48 -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