factor/basis/ui/images/images.factor

39 lines
984 B
Factor
Raw Normal View History

2009-02-11 05:55:33 -05:00
! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
2015-07-28 22:14:01 -04:00
USING: accessors assocs cache combinators images.loader kernel
memoize namespaces opengl.textures system ui.gadgets.worlds
vocabs ;
2009-02-11 05:55:33 -05:00
IN: ui.images
TUPLE: image-name path ;
C: <image-name> image-name
MEMO: cached-image ( image-name -- image ) path>> load-image ;
2009-02-11 05:55:33 -05:00
<PRIVATE
: image-texture-cache ( world -- texture-cache )
[ [ <cache-assoc> ] unless* ] change-images images>> ;
2009-02-11 05:55:33 -05:00
PRIVATE>
: rendered-image ( image-name -- texture )
world get image-texture-cache
[ cached-image { 0 0 } <texture> ] cache ;
2009-02-11 05:55:33 -05:00
: draw-image ( image-name -- )
rendered-image draw-texture ;
2009-02-11 05:55:33 -05:00
: draw-scaled-image ( dim image-name -- )
rendered-image draw-scaled-texture ;
2009-02-11 05:55:33 -05:00
: image-dim ( image-name -- dim )
cached-image dim>> ;
{
{ [ os macosx? ] [ "images.loader.cocoa" require ] }
{ [ os windows? ] [ "images.loader.gdiplus" require ] }
[ "images.loader.gtk" require ]
} cond