]> gitweb.factorcode.org Git - factor.git/blob - basis/ui/images/images.factor
Remove Windows CE from core/ basis/ and build-support/
[factor.git] / basis / ui / images / images.factor
1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors assocs cache combinators images images.loader
4 kernel memoize namespaces opengl opengl.gl opengl.textures system
5 ui.gadgets.worlds vocabs.loader ;
6 IN: ui.images
7
8 TUPLE: image-name path ;
9
10 C: <image-name> image-name
11
12 MEMO: cached-image ( image-name -- image ) path>> load-image ;
13
14 <PRIVATE
15
16 : image-texture-cache ( world -- texture-cache )
17     [ [ <cache-assoc> ] unless* ] change-images images>> ;
18
19 PRIVATE>
20
21 : rendered-image ( path -- texture )
22     world get image-texture-cache
23     [ cached-image { 0 0 } <texture> ] cache ;
24
25 : draw-image ( image-name -- )
26     rendered-image draw-texture ;
27
28 : draw-scaled-image ( dim image-name -- )
29     rendered-image draw-scaled-texture ;
30
31 : image-dim ( image-name -- dim )
32     cached-image dim>> ;
33
34 <<
35 {
36     { [ os macosx? ] [ "images.cocoa"   require ] }
37     { [ os windows?  ] [ "images.gdiplus" require ] }
38     [ "images.gtk" require ]
39 } cond
40 >>