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
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