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  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								92f4909d63 
								
							 
						 
						
							
							
								
								[mtl canvas] testing the metal canvas rendering the ghostscript tiger, and acknowledging it's painfully slow  
							
							
							
						 
						
							2023-03-18 14:35:51 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								1d36088302 
								
							 
						 
						
							
							
								
								[mtl canvas] render to an intermediate texture and acquire the drawable and blit to it only at the end of all compute passes  
							
							
							
						 
						
							2023-03-16 10:25:56 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								f14f397c99 
								
							 
						 
						
							
							
								
								[mtl surface] don't re-acquire drawable if there's already a valid one acquired  
							
							
							
						 
						
							2023-03-15 18:51:50 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								bd8e31c535 
								
							 
						 
						
							
							
								
								[mtl canvas] triple buffer vertex/index/shape buffers  
							
							
							
						 
						
							2023-03-15 17:48:39 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								0c74e997ae 
								
							 
						 
						
							
							
								
								[mtl surface] fix crash on exit when metal GPU frame capture is enabled. Apparently, if we release resources (on exit) before all GPU work is completed, libMetalCapture crashes on bad access. To work around that, in mg_mtl_surface_destroy(), we enqueue a last (empty) command buffer and call waitUntilCompleted on it, to ensure all previous command buffers are also completed  
							
							
							
						 
						
							2023-03-15 13:02:18 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								5ce53001e2 
								
							 
						 
						
							
							
								
								[canvas, mtl] clear resets command count and stores clear color. Ccanvas' backend begin proc now takes a clearColor parameter and clears final surface to that color before drawing any batch  
							
							
							
						 
						
							2023-03-15 11:09:42 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								98bac9744f 
								
							 
						 
						
							
							
								
								[mtl canvas] rearranged bounding box computations in tiling shader  
							
							
							
						 
						
							2023-03-15 10:19:04 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								f2cb96826c 
								
							 
						 
						
							
							
								
								[mtl canvas] fix bias computation for clockwise triangles  
							
							
							
						 
						
							2023-03-15 10:04:51 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								5c1a220f1f 
								
							 
						 
						
							
							
								
								[mtl canvas] don't reorder point to make clockwise triangles. Instead, store triangle orientation in triangle struct and multiply orientation in raster test  
							
							
							
						 
						
							2023-03-14 15:08:39 +01:00  
				
					
						
							
							
								
								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 
							
						 
						
							
								c9a5b3d52d 
								
							 
						 
						
							
							
								
								[mtl canvas] rearranged triangle data for better packing  
							
							
							
						 
						
							2023-03-14 09:42:17 +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 
							
						 
						
							
								6da2494c81 
								
							 
						 
						
							
							
								
								[canvas example] fixed movement  
							
							
							
						 
						
							2023-03-13 15:53:35 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								13f025ab21 
								
							 
						 
						
							
							
								
								[mtl canvas] convert triangle rasterization to fixed point  
							
							
							
						 
						
							2023-03-13 15:18:18 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								7c58145524 
								
							 
						 
						
							
							
								
								[mtl surface] Allow setting swap interval to 0. Note however that vsync needs to be turned off at the OS level for that to work smoothly. Otherwise, we get jittery frame rate with stalls when we run off of drawables (I suppose? should investigate some more).  
							
							... 
							
							
							
							This can be done with Quart Debugger in Additional Tools for XCode. 
							
						 
						
							2023-03-13 12:21:33 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								716bdc53d4 
								
							 
						 
						
							
							
								
								[ui] draw drop-down button with correct roundness  
							
							
							
						 
						
							2023-03-13 10:53:21 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								5455c2a52b 
								
							 
						 
						
							
							
								
								[ui] Allow styling overlay boxes (e.g. menu and drop-down list panels) locally.  
							
							... 
							
							
							
							- Added an UI_FLAG_OVERLAY flag. When we make a box with that flag set, it is added the an overlayList in the ui context.
- After styling and static size pass, we reparent boxes in the overlayList to an overlay node just below the root node.
- Layout and drawing works uniformly on the whole tree. Overlay boxes get drawn last and steal mouse hover from boxes underneath them. 
							
						 
						
							2023-03-13 10:26:39 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								9e41d2b6fc 
								
							 
						 
						
							
							
								
								[ui] first version of select popup menu  
							
							
							
						 
						
							2023-03-12 19:06:09 +01:00