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  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								09951afa53 
								
							 
						 
						
							
							
								
								[ui] added ui_checkbox() helper  
							
							
							
						 
						
							2023-03-11 19:06:05 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								b907578eb4 
								
							 
						 
						
							
							
								
								Fix clipping one pixel short  
							
							
							
						 
						
							2023-03-11 16:55:30 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								009fe8e3e8 
								
							 
						 
						
							
							
								
								[ui, styling]Fix order of adding after rules to running list in rule-matching pass  
							
							
							
						 
						
							2023-03-11 16:43:58 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								bf92a6f307 
								
							 
						 
						
							
							
								
								Merge branch 'master' of ssh://git.forkingpaths.dev/martinfouilleul/milepost  
							
							
							
						 
						
							2023-03-11 16:27:52 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								da7e0f402b 
								
							 
						 
						
							
							
								
								[ui, layout] Add UI_FLAG_ALLOW_OVERFLOW_X/Y  
							
							
							
						 
						
							2023-03-11 16:27:21 +01:00  
				
					
						
							
							
								
								martinfouilleul 
							
						 
						
							
								137a75540b 
								
							 
						 
						
							
							
								
								[win32] implemented string clipboard functions  
							
							
							
						 
						
							2023-03-09 19:44:55 +01:00  
				
					
						
							
							
								
								martinfouilleul 
							
						 
						
							
								359e08b0a8 
								
							 
						 
						
							
							
								
								[ui] set text box cursor to the same color as text  
							
							
							
						 
						
							2023-03-09 18:09:04 +01:00  
				
					
						
							
							
								
								martinfouilleul 
							
						 
						
							
								cae8666561 
								
							 
						 
						
							
							
								
								[ui, win32] Fixed char input and modifier keys  
							
							
							
						 
						
							2023-03-09 18:03:27 +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 
							
						 
						
							
								d2f4f5083b 
								
							 
						 
						
							
							
								
								[ui, layout] solving layout constraints  
							
							
							
						 
						
							2023-03-09 13:13:13 +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 
							
						 
						
							
								d3a8a651e5 
								
							 
						 
						
							
							
								
								[ui, styling] make layout and floating properties part of styling system  
							
							
							
						 
						
							2023-03-07 10:33:22 +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 
							
						 
						
							
								1af132352a 
								
							 
						 
						
							
							
								
								[ui, textbox] Scroll text inside text box to always show edit cursor.  
							
							
							
						 
						
							2023-03-05 16:35:55 +01:00  
				
					
						
							
							
								
								Martin Fouilleul 
							
						 
						
							
								592f4cdecd 
								
							 
						 
						
							
							
								
								end of line renormalization  
							
							
							
						 
						
							2023-03-05 16:05:43 +01:00