1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: namespaces cache images images.loader accessors assocs
4 kernel opengl opengl.gl opengl.textures ui.gadgets.worlds
5 memoize images.png images.tiff ;
8 TUPLE: image-name path ;
10 C: <image-name> image-name
12 MEMO: cached-image ( image-name -- image ) path>> load-image ;
16 : image-texture-cache ( world -- texture-cache )
17 [ [ <cache-assoc> ] unless* ] change-images images>> ;
21 : rendered-image ( path -- texture )
22 world get image-texture-cache
23 [ cached-image { 0 0 } <texture> ] cache ;
25 : draw-image ( image-name -- )
26 rendered-image draw-texture ;
28 : draw-scaled-image ( dim image-name -- )
29 rendered-image draw-scaled-texture ;
31 : image-dim ( image-name -- dim )