Martin Fouilleul
0c8e698b6e
[mtl canvas] don't trigger a new batch when setting the current image to nil (avoids creating a lot of batches when we just alternate between the same image and no image, eg painting multiple instances of the same image with a stroked border)
2023-07-27 16:10:30 +02:00
Martin Fouilleul
025ebd91d5
[osx, canvas]
...
- Pass buffer lengths to kernels and bound check when allocating from buffers
- Dynamically compute/guess size of intermediate buffers and grow if needed
2023-07-11 20:03:17 +02:00
Martin Fouilleul
fc07a0d018
[osx, canvas] use 32 pixels-wide tiles
2023-07-11 14:27:15 +02:00
Martin Fouilleul
9e8a0f5f69
[osx, canvas] Only dispatch raster shader for tiles that are overlapped by at least one path.
2023-07-10 20:20:18 +02:00
Martin Fouilleul
bfc7530bcf
[osx, canvas]
...
- Only super sample coverage at 8x rate, and accumulate pixel color in a single color value
- Super sample images at lower 2x rate
- Cull tiles outside clip
- Bypass coverage for fully covered tiles
2023-07-10 17:52:34 +02:00
Martin Fouilleul
7573c40c56
[mtl, canvas] remove unused hull matrix
2023-07-07 16:44:32 +02:00
Martin Fouilleul
f35e91a38c
[mtl renderer] fixed clipping
2023-04-11 14:51:58 +02:00
Martin Fouilleul
551d5e084e
[mtl renderer] re-introduced texturing
2023-04-09 19:24:32 +02:00
Martin Fouilleul
ee3e55dadd
[mtl renderer] fix msaa sample positions
2023-04-08 12:11:38 +02:00
Martin Fouilleul
effd8f1dd0
[mtl canvas] use same ccw test for testing against diagonal and testing against hull
2023-04-08 10:04:17 +02:00
Martin Fouilleul
2b7aadf180
[mtl canvas] multi-sampling
2023-04-07 18:18:50 +02:00
Martin Fouilleul
65b5a4b52a
[mtl renderer] Fixed curve slicing which used matrix operation and re-parameterization, which could create gaps in path. Now use blossoms, which ensure endpoints of subcurves match
2023-04-07 17:17:55 +02:00
Martin Fouilleul
d1fab449bc
[mtl canvas] Fixed loop implicit matrix
2023-04-07 10:15:37 +02:00
Martin Fouilleul
c4e866d9d4
[mtl canvas] Fix shader contents scaling
2023-04-05 10:31:50 +02:00
Martin Fouilleul
e999af6bd3
[mtl canvas] make diagonal checks inclusive in mtl_side_of_segment()
2023-04-05 10:19:25 +02:00
Martin Fouilleul
53946a5710
[mtl canvas] fix end joint not generated for paths with only 2 elements
2023-04-05 09:52:12 +02:00
Martin Fouilleul
8d7fdf3b1a
[mtl canvas, wip] Fixing inclusive/exclusive bound checks during curve side tests / shortcut / rasterization
2023-04-04 19:02:53 +02:00
Martin Fouilleul
9322db8201
[mtl canvas, wip] cubic bézier implicitization
2023-04-01 19:46:35 +02:00
Martin Fouilleul
767841f9c6
[mtl canvas, wip] Fixed wrong backdrop when segment ended right on tile's bottom boundary
2023-03-30 16:41:41 +02:00
Martin Fouilleul
93998852bb
[mtl canvas, wip] Re-introducing quadratics implicitization
2023-03-30 15:58:46 +02:00
Martin Fouilleul
8af4e4eddc
[mtl canvas, wip] Collate queues in a per-tile op list and prune occluded shapes
2023-03-29 16:21:28 +02:00
Martin Fouilleul
a6c53649bd
[mtl canvas, wip] implemented backprop
2023-03-29 14:27:05 +02:00
Martin Fouilleul
c4415aaeea
[mtl canvas, wip] binning segments to tile queues
2023-03-28 17:58:23 +02:00
Martin Fouilleul
c71bc5be98
[mtl canvas] segment setup pass
2023-03-28 15:10:05 +02:00
Martin Fouilleul
f6a992e5f4
[mtl canvas] very first draft of new canvas backend based on edge-counting instead of triangle overlap
2023-03-28 13:09:48 +02:00