add a resize-world generic to handle window resizes
							parent
							
								
									045635cdf2
								
							
						
					
					
						commit
						4504907736
					
				| 
						 | 
					@ -24,6 +24,7 @@ TUPLE: world-attributes
 | 
				
			||||||
    status
 | 
					    status
 | 
				
			||||||
    gadgets
 | 
					    gadgets
 | 
				
			||||||
    { pixel-format-attributes initial: $ default-world-pixel-format-attributes } ;
 | 
					    { pixel-format-attributes initial: $ default-world-pixel-format-attributes } ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
C: <world-attributes> world-attributes
 | 
					C: <world-attributes> world-attributes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
: find-world ( gadget -- world/f ) [ world? ] find-parent ;
 | 
					: find-world ( gadget -- world/f ) [ world? ] find-parent ;
 | 
				
			||||||
| 
						 | 
					@ -97,10 +98,22 @@ flush-layout-cache-hook [ [ ] ] initialize
 | 
				
			||||||
GENERIC: begin-world ( world -- )
 | 
					GENERIC: begin-world ( world -- )
 | 
				
			||||||
GENERIC: end-world ( world -- )
 | 
					GENERIC: end-world ( world -- )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GENERIC: resize-world ( world -- )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
M: world begin-world
 | 
					M: world begin-world
 | 
				
			||||||
    drop ;
 | 
					    drop ;
 | 
				
			||||||
M: world end-world
 | 
					M: world end-world
 | 
				
			||||||
    drop ;
 | 
					    drop ;
 | 
				
			||||||
 | 
					M: world resize-world
 | 
				
			||||||
 | 
					    drop ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					M: world (>>dim)
 | 
				
			||||||
 | 
					    [ call-next-method ]
 | 
				
			||||||
 | 
					    [
 | 
				
			||||||
 | 
					        dup handle>>
 | 
				
			||||||
 | 
					        [ select-gl-context resize-world ]
 | 
				
			||||||
 | 
					        [ drop ] if*
 | 
				
			||||||
 | 
					    ] bi ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GENERIC: draw-world* ( world -- )
 | 
					GENERIC: draw-world* ( world -- )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,13 +51,16 @@ SYMBOL: windows
 | 
				
			||||||
    focus-path f swap focus-gestures ;
 | 
					    focus-path f swap focus-gestures ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
: try-to-open-window ( world -- )
 | 
					: try-to-open-window ( world -- )
 | 
				
			||||||
    [ (open-window) ]
 | 
					    {
 | 
				
			||||||
    [ handle>> select-gl-context ]
 | 
					        [ (open-window) ]
 | 
				
			||||||
    [
 | 
					        [ handle>> select-gl-context ]
 | 
				
			||||||
        [ begin-world ]
 | 
					        [
 | 
				
			||||||
        [ [ handle>> (close-window) ] [ ui-error ] bi* ]
 | 
					            [ begin-world ]
 | 
				
			||||||
        recover
 | 
					            [ [ handle>> (close-window) ] [ ui-error ] bi* ]
 | 
				
			||||||
    ] tri ;
 | 
					            recover
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					        [ resize-world ]
 | 
				
			||||||
 | 
					    } cleave ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
M: world graft*
 | 
					M: world graft*
 | 
				
			||||||
    [ try-to-open-window ]
 | 
					    [ try-to-open-window ]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue