Commit Graph

788 Commits

Author SHA1 Message Date
Patrick Walton ade3b5fbb9 Remove Pathfinder 2 shaders 2019-02-08 14:44:25 -08:00
Patrick Walton faad8c3950 Remove old resources 2019-02-08 14:43:47 -08:00
Patrick Walton 2f497e7f17 Remove unused `gfx-utils` 2019-02-08 14:42:17 -08:00
Patrick Walton 39d6b1d9c2 Remove the old Pathfinder 3 demo 2019-02-08 14:41:06 -08:00
Patrick Walton 4062f824fd Remove the Pathfinder 2 demo 2019-02-08 14:39:35 -08:00
Patrick Walton 2a118c3af0 Get all postprocessing filters working 2019-02-08 14:37:30 -08:00
Patrick Walton ba5a0f987c Add basic postprocessing support 2019-02-08 13:55:31 -08:00
Patrick Walton 035baf656b Make the 2D/3D switch work 2019-02-07 16:58:11 -08:00
Patrick Walton a8cc87bfd7 Make the effects window togglable 2019-02-07 16:38:24 -08:00
Patrick Walton 7429821867 Move demo UI to the demo 2019-02-07 15:35:21 -08:00
Patrick Walton c9a80304dc Add some more (non-functional) UI widgets to the demo 2019-02-07 14:07:05 -08:00
Patrick Walton 0b662b0660 Draw a settings button, not functional yet 2019-02-06 20:59:29 -08:00
Patrick Walton a81850a899 Add window resizing support to the demo 2019-02-06 18:09:37 -08:00
Patrick Walton a6963d5f3b Optimize dilation. 2019-02-06 13:48:50 -08:00
Patrick Walton 6920583086 wip 2019-02-06 13:46:19 -08:00
Patrick Walton b5c73f25f0 wip 2019-02-06 13:45:15 -08:00
Patrick Walton 27e47b4c39 wip 2019-02-06 13:12:53 -08:00
Patrick Walton 8771dd6789 wip: dilation not working yet 2019-02-05 20:10:20 -08:00
Patrick Walton 45dec44a53 wip 2019-02-05 13:21:33 -08:00
Patrick Walton 7151d82d76 Stop converting SVG paths to monotonic paths early 2019-02-05 12:23:43 -08:00
Patrick Walton 3d0463999c Add a SIMD integer rect type 2019-02-05 10:55:01 -08:00
Patrick Walton fe410e066f Add a SIMD rect type 2019-02-05 10:03:20 -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 f25682f0f1 Add a defringing shader for subpixel antialiasing, untested as of yet 2019-02-04 16:04:13 -08:00
Patrick Walton a5234e6695 Stop clipping 3D quads over and over 2019-02-02 13:53:04 -08:00
Patrick Walton b0e91369e5 Do scene building just-in-time on a per-outline basis as part of tiling 2019-02-02 11:36:42 -08:00
Patrick Walton f19757e4cf Add a fast path for monotonic conversion 2019-02-02 11:12:54 -08:00
Patrick Walton 70e615205e Optimize monotonic conversion a little bit 2019-02-01 19:10:42 -08:00
Patrick Walton ca3a8852a6 Add more fast paths to the clipper 2019-02-01 18:25:48 -08:00
Patrick Walton d08ff40cdf Add a fast AABB check to the rect clipper 2019-02-01 17:57:26 -08:00
Patrick Walton 4c5e351829 Use a fast path for axis aligned clipping 2019-02-01 17:49:03 -08:00
Patrick Walton 805f0c9fa7 Trait-ify the 2D clipper 2019-02-01 17:27:23 -08:00
Patrick Walton df59fd9792 Rename `Point4DF32` to `Point3DF32` 2019-02-01 17:07:03 -08:00
Patrick Walton 6a286ab153 Remove `Point3DF32` 2019-02-01 17:05:35 -08:00
Patrick Walton 42bb7acddb Add some tests for SIMD 2019-02-01 16:58:35 -08:00
Patrick Walton f9aed5b077 Add some more SIMD stuff 2019-02-01 15:19:44 -08:00
Patrick Walton 2487d71879 Add more shuffles and rename combines for clarity 2019-02-01 12:16:42 -08:00
Patrick Walton 0b0c913332 Split out SIMD into a separate crate 2019-02-01 11:48:10 -08:00
Patrick Walton eb9b4a2a06 Work around macOS Radeon driver bug 2019-01-31 19:10:59 -08:00
Patrick Walton 49bc8e16a0 Put the scene building in a background thread.
Large increase in FPS!
2019-01-31 18:21:50 -08:00
Patrick Walton 89244ba6cf Do clipping in 3D homogeneous space 2019-01-31 15:29:13 -08:00
Patrick Walton 4801503dd8 Fix curve/edge intersection logic in clipping 2019-01-31 10:12:37 -08:00
Patrick Walton dd480feb52 Factor out the GL rendering code into a separate crate 2019-01-30 19:31:29 -08:00
Patrick Walton b6432fa47d Add basic timer query support.
Inaccurate on macOS.
2019-01-30 15:30:40 -08:00
Patrick Walton e105bdb7c9 Display timing info in the demo 2019-01-30 14:42:06 -08:00
Patrick Walton 6b8848bb35 Fix boundary condition for active edges precisely on tile boundaries 2019-01-29 19:29:42 -08:00
Patrick Walton 13716fd733 Fix 3D velocity controls 2019-01-29 15:44:31 -08:00
Patrick Walton e3bf703105 Stop using 100% CPU; fix bug when splitting line segments at Y extrema 2019-01-29 15:35:07 -08:00
Patrick Walton e958363872 Allow scenes to be dumped as SVG (untested) and make 3D mode optional in the demo 2019-01-29 14:50:15 -08:00
Patrick Walton ab93ea1f22 Fix bogus thin culling that was causing artefacts 2019-01-29 11:27:25 -08:00
Patrick Walton d1ca5fe757 Use a much better technique for curve flattening 2019-01-28 20:36:06 -08:00
Patrick Walton a9c1760de5 Clipping mostly works now 2019-01-28 14:58:57 -08:00
Patrick Walton 7e3365c481 wip 2019-01-28 12:57:15 -08:00
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