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 |
Martin Fouilleul
|
0d8bc824a2
|
[mtl canvas] bucket triangles into per-shape tile queues, then gather into tile arrays. This somewhat improves perf for perf_text test and avoids an awful degradation due to sorting in tiger test (tiger now runs at ~20fps, which is still much slower than it could be, but the triangle coverage method we're using just incurs too much cross product computations...)
|
2023-03-21 10:22:37 +01:00 |
Martin Fouilleul
|
a4ef58f2d8
|
[mtl canvas] Tiling per rectangles into per-shape tile queues (linked lists of triangle indices) to avoid sorting
|
2023-03-20 16:46:12 +01:00 |
Martin Fouilleul
|
11113f597c
|
[mtl canvas, exp] try tiling per tile and avoiding sorting pass (worse on simple shapes and text, but degrades slower with complex scenes (eg tiger). Not great though)
|
2023-03-20 10:08:17 +01:00 |