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 
							
						 
						
							
								c4415aaeea 
								
							 
						 
						
							
							
								
								[mtl canvas, wip] binning segments to tile queues  
							
							
							
						 
						
							2023-03-28 17:58:23 +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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								bd8e31c535 
								
							 
						 
						
							
							
								
								[mtl canvas] triple buffer vertex/index/shape buffers  
							
							
							
						 
						
							2023-03-15 17:48:39 +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 
							
						 
						
							
								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  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								09951afa53 
								
							 
						 
						
							
							
								
								[ui] added ui_checkbox() helper  
							
							
							
						 
						
							2023-03-11 19:06:05 +01:00  
				
					
						
							
							
								
								martinfouilleul 
							
						 
						
							
								9accf4c666 
								
							 
						 
						
							
							
								
								[ui, win32]  
							
							... 
							
							
							
							- change coord system of gl canvas to match ui
- change mouse coordinate system to match ui
- fix mouse delta 
							
						 
						
							2023-03-09 17:38:41 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								c7d5cf113e 
								
							 
						 
						
							
							
								
								[ui] reintroducing tooltip  
							
							
							
						 
						
							2023-03-09 16:08:42 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								c362751c23 
								
							 
						 
						
							
							
								
								[ui] menus widgets first draft  
							
							
							
						 
						
							2023-03-09 16:02:46 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								feca7d1026 
								
							 
						 
						
							
							
								
								[ui] moved ui_panel() into ui.c  
							
							
							
						 
						
							2023-03-09 14:27:46 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								56874c99d6 
								
							 
						 
						
							
							
								
								[ui, layout] layout constraint solving, first draft  
							
							
							
						 
						
							2023-03-09 12:36:38 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								a569454df5 
								
							 
						 
						
							
							
								
								[ui, wip] scrolling / scrolling panels  
							
							
							
						 
						
							2023-03-08 19:53:28 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								873d4ab6db 
								
							 
						 
						
							
							
								
								[ui, canvas]  
							
							... 
							
							
							
							- Allow querying the size of the canvas's underlying surface
- Set size of ui root to canvas' size 
							
						 
						
							2023-03-08 15:03:35 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								1212d714d5 
								
							 
						 
						
							
							
								
								[platform/canvas]  
							
							... 
							
							
							
							- Changed canvas coordinate system to match UI coord system (origin at top left, y axis down)
- Changed mouse coordinate system to match UI and canvas
- No need to pass width/height to ui_begin_frame() anymore 
							
						 
						
							2023-03-08 13:19:18 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								7b2ef080e8 
								
							 
						 
						
							
							
								
								[util, formatting] shorten list loop names to for_list_xxx  
							
							
							
						 
						
							2023-03-08 12:03:33 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								3682605f97 
								
							 
						 
						
							
							
								
								[util, formatting] changed list api to snakecase for consistency with the rest of the codebase  
							
							
							
						 
						
							2023-03-08 12:00:10 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								bfc19665ce 
								
							 
						 
						
							
							
								
								[util]  
							
							... 
							
							
							
							- shorten str8_lit macro to STR8
- use strlen() in STR8 and remove str8_from_cstring(). Usage with string literal seem to always be optimized by compile-time constant, so there's little need for a confusing macro that only works with literals and breaks with pointers.
- replaced str8_unbox() with str8_lp/str8_ip 
							
						 
						
							2023-03-08 11:40:40 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								f07f56948d 
								
							 
						 
						
							
							
								
								[ui] shorten ui styling api names  
							
							
							
						 
						
							2023-03-08 11:13:32 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								8b06cb31ba 
								
							 
						 
						
							
							
								
								[ui, styling]  
							
							... 
							
							
							
							- Put all styling calls _before_ the styled box.
- Renamed full pattern matching API to ui_style_match_next_before/after
- Helper to style next box only (ui_style_next()) 
							
						 
						
							2023-03-08 11:09:28 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								c551135933 
								
							 
						 
						
							
							
								
								[ui] remove the need to pass a default style to ui_frame()  
							
							
							
						 
						
							2023-03-07 19:44:22 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								2466241b1e 
								
							 
						 
						
							
							
								
								[ui, styling] finished first pass on core layout/styling system  
							
							
							
						 
						
							2023-03-07 19:27:01 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								8032c7340b 
								
							 
						 
						
							
							
								
								[ui, styling] revisiting layout/sizing  
							
							
							
						 
						
							2023-03-07 19:06:04 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								7b10a99a8c 
								
							 
						 
						
							
							
								
								[ui, styling] First draft of rule-based styling to replace old stack-based system  
							
							
							
						 
						
							2023-03-06 19:33:01 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								b52a35c753 
								
							 
						 
						
							
							
								
								[ui, textbox] Fixed selection background rectangle  
							
							
							
						 
						
							2023-03-05 17:03:00 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								592f4cdecd 
								
							 
						 
						
							
							
								
								end of line renormalization  
							
							
							
						 
						
							2023-03-05 16:05:43 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								4359bdaa3c 
								
							 
						 
						
							
							
								
								[ui, textbox] position cursor at mouse position / extend selection on shift + mouse press or drag  
							
							
							
						 
						
							2023-03-05 15:59:57 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								731e5b1ae8 
								
							 
						 
						
							
							
								
								[surface] pull mp_layer into the generic mg_surface_data struct, out of each backend-specific implementation  
							
							
							
						 
						
							2023-03-03 11:50:12 +01:00  
				
					
						
							
							
								
								martinfouilleul 
							
						 
						
							
								ac00cc9def 
								
							 
						 
						
							
							
								
								[wip, win32 surface sharing] simplifyin the surface sharing API  
							
							
							
						 
						
							2023-03-02 19:21:39 +01:00  
				
					
						
							
							
								
								martinfouilleul 
							
						 
						
							
								ee87976429 
								
							 
						 
						
							
							
								
								[win32 surface sharing] hacky proof of concept  
							
							
							
						 
						
							2023-03-02 18:24:15 +01:00  
				
					
						
							
							
								
								martinfouilleul 
							
						 
						
							
								3ada8ece9a 
								
							 
						 
						
							
							
								
								[wip, win32 surface sharing] in surface sharing example, terminate child process when parent exits  
							
							
							
						 
						
							2023-03-02 12:23:10 +01:00  
				
					
						
							
							
								
								martinfouilleul 
							
						 
						
							
								e58ae3ef52 
								
							 
						 
						
							
							
								
								[surface sharing] first draft for win32 using window reparenting  
							
							
							
						 
						
							2023-03-02 09:54:12 +01:00