Commit Graph

1219 Commits

Author SHA1 Message Date
Patrick Walton d75ed71af4 WIP before moving to a segment basis 2019-02-20 12:41:43 -08:00
Patrick Walton c7a1d9e960 Use stencil to integrate the vector scene into the 3D environment 2019-02-19 12:03:02 -08:00
Patrick Walton 3b8ecfd74c WIP before removing barycentric coordinates 2019-02-18 18:13:10 -08:00
Patrick Walton 9af3bac11f Implement depth interpolation, not working yet 2019-02-18 13:42:30 -08:00
Patrick Walton 661a865508 Fill depth when drawing the ground plane 2019-02-15 19:07:42 -08:00
Patrick Walton d30743a69c Begin refactoring the demo into a shared library and a platform-specific
entry point.

This will help the upcoming wasm port.
2019-02-15 18:21:46 -08:00
Patrick Walton 63b59df375 Start a new Web site 2019-02-15 17:29:35 -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 4053b7dd0c Add zoom in and zoom out buttons for input devices without gesture support 2019-02-13 10:32:25 -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 fb692acf05 Open a default SVG if none is supplied on the command line 2019-02-12 19:31:29 -08:00
Patrick Walton 2eccdba360 Allow pinch zoom in 2D mode 2019-02-12 15:00:33 -08:00
Patrick Walton d7f6d9eb3d Allow the canvas to be dragged in 2D mode 2019-02-12 14:49:24 -08:00
Patrick Walton 398718a3c8 Allow the rotation slider to be dragged 2019-02-12 12:49:35 -08:00
Patrick Walton 22fe63503f Implement 2D rotation 2019-02-12 12:40:24 -08:00
Patrick Walton a9ac960862 Load a new scene when the user requests it 2019-02-12 11:16:49 -08:00
Patrick Walton 7511b3bd2f Add a `LoadScene` message to the backend thread 2019-02-12 11:03:37 -08:00
Patrick Walton 31f1fae951 Add a TODO about monotonic conversion 2019-02-12 08:57:49 -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 92421943fc Open a file dialog when the user clicks on the open file 2019-02-08 21:08:03 -08:00
Patrick Walton 6afbafcb43 Split out the demo UI code into a separate module 2019-02-08 20:58:54 -08:00
Patrick Walton dbce7e3ad1 Fix dirty tracking to stop using 100% CPU 2019-02-08 20:51:34 -08:00
Patrick Walton 3cc8f7a11f Refactor the demo some 2019-02-08 15:39:47 -08:00
Patrick Walton 725834285b Refactor the demo a bit 2019-02-08 15:16:53 -08:00
Patrick Walton dbf880d011 Rename `demo3` to `demo` 2019-02-08 14:53:20 -08:00
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