Commit Graph

180 Commits

Author SHA1 Message Date
Patrick Walton 0da196aa92 Scale the SVG appropriately in the demo 2019-02-21 20:19:42 -08:00
Patrick Walton 66ee901e43 Close the path if necessary when rebuilding it for clipping 2019-02-21 11:42:48 -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 23943c7428 Add a flag to specify whether contours are closed 2019-02-20 16:32:40 -08:00
Patrick Walton b9e3952246 Reimplement segment offsetting 2019-02-20 16:21:58 -08:00
Patrick Walton d75ed71af4 WIP before moving to a segment basis 2019-02-20 12:41:43 -08:00
Patrick Walton 9af3bac11f Implement depth interpolation, not working yet 2019-02-18 13:42:30 -08:00
Patrick Walton e4803cfddf Add some ground to the 3D scene, no depth buffer yet 2019-02-14 18:53:02 -08:00
Patrick Walton 0983812b90 Rotate and scale around the appropriate points in the demo 2019-02-13 16:05:28 -08:00
Patrick Walton cb9c14bd59 Remove the Pathfinder 2 orientation computation code 2019-02-12 19:56:44 -08:00
Patrick Walton dbc14a3fc0 Remove the `normals` module, as we now dilate outlines directly 2019-02-12 19:55:58 -08:00
Patrick Walton e3cca6a676 Remove the `cubic_to_quadratic` module, as it's unneeded now 2019-02-12 19:51:48 -08:00
Patrick Walton d7f6d9eb3d Allow the canvas to be dragged in 2D mode 2019-02-12 14:49:24 -08:00
Patrick Walton f04c000cae Add a quick check to skip clipping when an outline is entirely inside or
outside the clip area
2019-02-09 19:24:30 -08:00
Patrick Walton 725834285b Refactor the demo a bit 2019-02-08 15:16:53 -08:00
Patrick Walton a8cc87bfd7 Make the effects window togglable 2019-02-07 16:38:24 -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 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 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 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 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 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 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 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 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 adf49ab932 Rename `path-utils` to `geometry` 2019-01-10 10:01:21 -08:00