fix bugs and also destroy textures whose refcounts are 0 on ungraft*
parent
b5279bde62
commit
79a120d770
|
@ -44,15 +44,21 @@ M: pango-gadget dim>> ( gadget -- dim )
|
||||||
|
|
||||||
M: pango-gadget graft* ( gadget -- ) [ 1+ ] refcount-change ;
|
M: pango-gadget graft* ( gadget -- ) [ 1+ ] refcount-change ;
|
||||||
|
|
||||||
M: pango-gadget ungraft* ( gadget -- ) [ 1- ] refcount-change ;
|
: release-texture ( gadget -- )
|
||||||
|
cache-key textures get delete-at* [ delete-texture ] [ drop ] if ;
|
||||||
|
|
||||||
|
M: pango-gadget ungraft* ( gadget -- )
|
||||||
|
dup [ 1- ] refcount-change
|
||||||
|
dup cache-key refcounts get at
|
||||||
|
zero? [ release-texture ] [ drop ] if ;
|
||||||
|
|
||||||
M: pango-gadget render* ( gadget -- )
|
M: pango-gadget render* ( gadget -- )
|
||||||
[ gen-texture ] [ cache-key textures get set-at ]
|
[ gen-texture ] [ cache-key textures get set-at ] bi
|
||||||
[ call-next-method ] tri ;
|
call-next-method ;
|
||||||
|
|
||||||
M: pango-gadget tex>> ( gadget -- texture )
|
M: pango-gadget tex>> ( gadget -- texture )
|
||||||
dup cache-key textures get at
|
dup cache-key textures get at
|
||||||
[ ] [ render* tex>> ] ?if ;
|
[ nip ] [ dup render* tex>> ] if* ;
|
||||||
|
|
||||||
USE: ui.gadgets.panes
|
USE: ui.gadgets.panes
|
||||||
: hello "Sans 50" "hello" <pango-gadget> gadget. ;
|
: hello "Sans 50" "hello" <pango-gadget> gadget. ;
|
||||||
|
|
Loading…
Reference in New Issue