Commit Graph

223 Commits

Author SHA1 Message Date
Martin Fouilleul 1ab1d70df2 Fix image data not storing surface handle in mg_image_create() 2023-05-08 13:01:45 +02:00
Martin Fouilleul 39e96e0739 Added xxhash64 hash function and use that instead of x64-specific aes hash, until we get an arm version 2023-04-29 19:25:40 +02:00
Martin Fouilleul f69a6b31ae update angle install notes 2023-04-26 15:58:42 +02:00
Martin Fouilleul b27dc615d1 Finish separating graphics_common and graphics_surface + add platform_math, so that we can compile graphics_common to wasm in orca 2023-04-26 14:56:02 +02:00
Martin Fouilleul ca1caf8537 splitting graphics_surface and graphics_common in order to isolate surface dispatch stuff from orca apps 2023-04-25 22:15:56 +02:00
Martin Fouilleul 346979a21a [canvas] change surface/canvas APIs to treat canvas a 'just another kind of surface', and split canvas implementation (managed by surface) from canvas _command buffer_ and implicit context (represented by mg_canvas) 2023-04-25 19:13:15 +02:00
Martin Fouilleul 32d7d91893 [wip] changed ui_begin_frame() to take explicit canvas size 2023-04-25 15:10:05 +02:00
Martin Fouilleul 3769b70753 [wip] changing backend enum to api enum, and adding canvas api in here 2023-04-25 14:54:52 +02:00
Martin Fouilleul 7c273f494b [ui, logging]
- Changed workings of ui_panel() and scrolling to make it easier for usage code to control scrolling.
- Renamed logging functions
2023-04-20 15:40:00 +02:00
Martin Fouilleul bb6b68ad73 [event system] allocate events and additional payload (e.g. file paths) directly in ring buffer, and copy them to user-supplied arena in mp_next_event() 2023-04-19 16:16:36 +02:00
Martin Fouilleul ab150f94f2 separating input state from app, so that it can be used in different threads that main thread. E.g. ui context uses its own input state that can be fed events in a second thread 2023-04-19 11:28:20 +02:00
Martin Fouilleul f1d6e0f15c remove unnecessary platform headers from utf8 files 2023-04-18 18:42:48 +02:00
Martin Fouilleul ff4dddc0b7 moved assert to platform layer 2023-04-18 18:36:06 +02:00
Martin Fouilleul 794f47b141 abstracting logging for orca 2023-04-18 18:05:54 +02:00
Martin Fouilleul 86a16d3775 modifications to log system to support orca env where stdio is not defined 2023-04-18 14:33:27 +02:00
Martin Fouilleul 0d6fb197fb adding vargs and asserts for orca 2023-04-18 10:43:52 +02:00
Martin Fouilleul e9e9ab68c2 base memory allocator and chunked arenas for orca 2023-04-17 18:12:21 +02:00
Martin Fouilleul f36e144bc0 start integrating milepost components to orca 2023-04-17 10:55:19 +02:00
Martin Fouilleul c347e10577 Put all dependency libraries and shaders in bin directory 2023-04-12 16:12:26 +02:00
Martin Fouilleul f35e91a38c [mtl renderer] fixed clipping 2023-04-11 14:51:58 +02:00
Martin Fouilleul b7f5b84123 [mtl canvas] remove old metal canvas stuff 2023-04-11 11:19:29 +02:00
Martin Fouilleul 03b5802529 [canvas] replace simple shape helpers with normal paths operations instead of having dedicated primitives for rounded rects/ellipses and so on 2023-04-11 11:16:23 +02:00
Martin Fouilleul c6e89c1869 [wip] adding smooth live-resizing example 2023-04-11 10:50:14 +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 4c4f27066b [mtl renderer] re-introduced end caps 2023-04-05 10:25:48 +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 2484cdf7b3 [mtl canvas, wip] re-introducing joints 2023-04-04 20:35:48 +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 eee158ff85 [mtl canvas] tmp fix of clear color (revisit one we re-introduce texturing) 2023-03-29 16:30:16 +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
Martin Fouilleul c20758f6a2 [mtl canvas] cull tiles queues outside viewport 2023-03-22 17:28:11 +01:00
Martin Fouilleul faf024a63a [mtl canvas] reorganizing the loop in render kernel to allow different commands 2023-03-22 16:40:43 +01:00
Martin Fouilleul e9ecd9d521 [mtl canvas] Fix artifacts on tiger that was due to epsilon comparison for cubics equation in draw kernel. Removed that (now do <= 0), but then we need to weed out false negatives for solid triangles. So we compute if the triangle is solid in the triangle kernel and store it in the mg_triangle_data struct for now. 2023-03-22 15:02:04 +01:00
Martin Fouilleul b0be21795e [mtl canvas] prevent tiles entirely covered by textured shapes to be treated as solid (as the texture could be non-uniformly transparent) 2023-03-22 12:02:13 +01:00
Martin Fouilleul 26f669f3c1 [mtl canvas] adding a color command for fully covered, solid color tiles. This is not much of an improvement for now because the tile array just got bigger, but maybe we can use the same scheme and compact it into an int 2023-03-22 10:46:56 +01:00
Martin Fouilleul 90b00979ed [mtl canvas] detecting full covered/uncovered tiles 2023-03-22 09:23:22 +01:00