Commit Graph

82 Commits

Author SHA1 Message Date
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
Patrick Walton 7400f0acf3 Write a `.pf3` file 2018-12-17 14:07:19 -08:00
Patrick Walton 00fb5ca5de Create tile primitives 2018-12-16 17:43:03 -08:00
Patrick Walton 4b9e21c6a0 wip 2018-12-16 11:41:43 -08:00
Patrick Walton a563d7f0ea wip 2018-12-14 20:40:14 -08:00
Patrick Walton 45a14c08e1 Flatten 2018-12-14 20:34:36 -08:00
Patrick Walton c77d5df20d wip 2018-12-14 20:03:48 -08:00
Patrick Walton a443e41909 Guard band clipping 2018-12-14 18:52:34 -08:00
Patrick Walton 689dfdadf9 wip 2018-12-14 14:33:33 -08:00
Patrick Walton 8f5eb1ca60 add strokes 2018-12-14 14:33:33 -08:00
Patrick Walton 316a130143 wip 2018-12-14 14:33:33 -08:00
Patrick Walton 3dd961c1b4 Optimize a bit 2018-12-14 14:33:33 -08:00
Patrick Walton cfd1965a42 wip 2018-12-14 14:33:33 -08:00
Patrick Walton 670a6001fb wip 2018-12-14 14:33:33 -08:00
Patrick Walton dda3e16d2e wip, too slow 2018-12-13 14:04:17 -08:00
Patrick Walton 4597414e21 Quickcheck intervals 2018-12-12 14:55:53 -08:00
Patrick Walton ececd70760 Apply transforms 2018-12-11 16:53:57 -08:00
Patrick Walton b80e1ea38f wip: parsing svgs 2018-12-11 16:38:06 -08:00
Patrick Walton c6cc6e6fd8 Remove `pathfinder_font_renderer` in favor of `font-kit`.
Closes #69.

Closes #84.
2018-08-02 15:07:25 -07:00
Bastien Orivel 9d19454c36 Update app_units 0.7
See ya num-traits 0.1 o/
2018-07-31 20:16:44 +02:00
Bastien Orivel 3cfd0a3126 Update image to 0.19 2018-07-31 20:16:00 +02:00
Paul Rouget 6d7dd604f8 Euclid and lyon updates 2018-07-27 11:40:45 +02:00
Nicolas Silva 46d1878ef5 Update lyon and euclid dependencies. 2018-07-11 00:27:42 +02:00
Patrick Walton 235c51e160 Fix the Cargo version conflict in the front end 2018-04-10 11:20:17 -07:00
Patrick Walton 6e13fb171c Use a lookup table to do area calculations instead of Loop-Blinn-style
distance-to-edge for stencil analytic antialiasing.

This improves the rendering quality of stencil AAA significantly.

Additionally, this adds an approximation of Core Graphics' (macOS')
defringing filter.

Closes #73.
2018-03-19 14:35:36 -07:00
Patrick Walton 64c818e530 Construct meshes independently of mesh libraries (renamed to "mesh
packs").

This fits in better with the way WebRender does things. It simplifies
the code too.
2018-03-08 15:10:29 -08:00
Patrick Walton 18121208d4 Update euclid to 0.17 and Lyon to 0.10 2018-03-06 15:06:06 -08:00
Patrick Walton fad7f2f343 Fix FreeType build 2018-03-05 15:04:52 -08:00
Patrick Walton 5d3c1f6d59 Abstract away `FontKey` so WebRender can more easily use this; switch
from angle measurement to scale-dependent hull height
2018-03-05 11:27:18 -08:00
Patrick Walton a84b7c7cbd Replace ECAA with "Stencil AAA", a distance-based antialiasing
technique similar to the new MCAA.

This new technique simplifies the code significantly by unifying lines,
curves, and transformed curves. Blog posts forthcoming.
2018-02-17 10:45:25 -08:00
Patrick Walton 5bd68dec65 Port Pathfinder to use Lyon for Bézier curve math.
This removes a whole lot of code from `pathfinder_path_utils`. Hopefully
the remaining code can go upstream.

These changes regress quality of stroke widths for cubic curves, because
they move fill-to-stroke conversion before cubic-to-quadratic
conversion. To fix that, we will need to recursively subdivide when
doing fill-to-stroke conversion.
2018-01-29 12:47:47 -08:00
Patrick Walton 473cb38fb3 Add a few paragraphs of overview documentation 2017-12-23 18:17:33 -05:00
Patrick Walton 0a5f4c65df Add a prebuilt gamma LUT 2017-11-07 11:56:04 -08:00
Patrick Walton 556bb2ce84 Add `gamma_lut` from WebRender 2017-11-06 20:41:13 -08:00
Patrick Walton 8897145f54 Add a simple command-line frontend for use as part of a build process 2017-11-06 13:28:32 -08:00