Commit Graph

19 Commits

Author SHA1 Message Date
Martin Fouilleul 221fcbeb6b [mtl canvas] store uv transform and color in triangle data (don't pass vertex or shape buffer to draw kernel) 2023-03-14 12:20:39 +01:00
Martin Fouilleul 1b3583cc6d [mtl canvas] remove box array, cache box in triangle struct 2023-03-14 09:42:12 +01:00
Martin Fouilleul 6536f4ac64 [mtl canvas] fused boxing and tiling, cache cubics in triangle data 2023-03-14 09:40:11 +01:00
Martin Fouilleul ee4a667258 [mtl canvas] trying fused boxing/tiling passes 2023-03-14 09:25:20 +01:00
Martin Fouilleul fd5a4d4cd8 [wip] trying to simplify metal shader 2023-03-14 09:25:09 +01:00
Martin Fouilleul cee294d8ad [mtl canvas] fixed setBuffer that was being called on the wrong encoder 2023-03-14 09:20:51 +01:00
Martin Fouilleul e9d64166a3 [mtl canvas] fixed bug where tiles left and below screen where all bucketed to the first row/column (same as gl version, see 4a8c77f02) 2023-03-13 16:53:12 +01:00
Martin Fouilleul 592f4cdecd end of line renormalization 2023-03-05 16:05:43 +01:00
Martin Fouilleul c04e8639ab [wip, ui] re-integrating UI subsystem and completing text box 2023-03-03 20:09:44 +01:00
Martin Fouilleul 3615775168 [canvas] decompose image atlas API into simple rect atlas API + image atlas helpers. This avoids creating a bunch of new types/handles, and exposes the underlying image/sourceRegion so that user code can freely use these for more complex scenarios (eg drawing only a sub-region of an atlased image, or using an atlas image for arbitrary path filling) 2023-02-28 16:54:39 +01:00
Martin Fouilleul d4bceba7e9 [canvas] basic image atlas API 2023-02-28 13:16:36 +01:00
Martin Fouilleul d195fb1f61 [canvas, mtl backend] Compute each layer with pre-multiplied alpha, starting from transparent color. Composite them to surface with premultiplied alpha too. 2023-02-27 14:24:59 +01:00
Martin Fouilleul 9ed630fc55 [canvas]
- Clear final surface to clear color, and enable blending layers onto it
- Fixed Batching bug where we were writing to vertex/shape buffers while the previous batch is using them
- Fixed bug where uvTransform uses transform of next shape instead of that of shape being finalized
2023-02-27 11:56:04 +01:00
Martin Fouilleul 5be019d166 [canvas, metal] compute uv coords in shader using uvTransformed computed in canvas backend, using shape bounding box, image dimension, source and dest regions 2023-02-24 18:50:46 +01:00
Martin Fouilleul fd4c4e7be3 [canvas] simple image API 2023-02-24 12:01:00 +01:00
Martin Fouilleul d1b71110bb - Fixed metal canvas backend's drawBatch argument order
- Removed texturing in metal shader while we work on image API
- Started working on simple image API
2023-02-23 18:30:47 +01:00
Martin Fouilleul 2b60db292a [wip] image api 2023-02-23 17:07:41 +01:00
Martin Fouilleul 2232b647ed reintroduced GLES backend to osx 2023-02-20 11:05:01 +01:00
martinfouilleul 80ea8db687 [surface/canvas cleanup]
- Make build-time and runtime backend selection a bit easier
- Reorganized backend-specific files with slightly more coherent naming scheme
2023-02-10 16:56:10 +01:00