status
gadgets
{ pixel-format-attributes initial: $ default-world-pixel-format-attributes } ;
+
C: <world-attributes> world-attributes
: find-world ( gadget -- world/f ) [ world? ] find-parent ;
GENERIC: begin-world ( world -- )
GENERIC: end-world ( world -- )
+GENERIC: resize-world ( world -- )
+
M: world begin-world
drop ;
M: world end-world
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 -- )
focus-path f swap focus-gestures ;
: try-to-open-window ( world -- )
- [ (open-window) ]
- [ handle>> select-gl-context ]
- [
- [ begin-world ]
- [ [ handle>> (close-window) ] [ ui-error ] bi* ]
- recover
- ] tri ;
+ {
+ [ (open-window) ]
+ [ handle>> select-gl-context ]
+ [
+ [ begin-world ]
+ [ [ handle>> (close-window) ] [ ui-error ] bi* ]
+ recover
+ ]
+ [ resize-world ]
+ } cleave ;
M: world graft*
[ try-to-open-window ]