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
|
|
|
|
|
2009-02-15 07:01:46 -05:00
|
|
|
MEMO: cached-image ( image-name -- image ) path>> load-image ;
|
2009-02-11 05:55:33 -05:00
|
|
|
|
|
|
|
<PRIVATE
|
|
|
|
|
|
|
|
: image-texture-cache ( world -- texture-cache )
|
2009-02-15 05:33:43 -05:00
|
|
|
[ [ <cache-assoc> ] unless* ] change-images images>> ;
|
2009-02-11 05:55:33 -05:00
|
|
|
|
|
|
|
PRIVATE>
|
|
|
|
|
2014-12-15 12:56:03 -05:00
|
|
|
: rendered-image ( image-name -- texture )
|
2009-02-20 21:53:51 -05:00
|
|
|
world get image-texture-cache
|
|
|
|
[ cached-image { 0 0 } <texture> ] cache ;
|
2009-02-11 05:55:33 -05:00
|
|
|
|
|
|
|
: draw-image ( image-name -- )
|
2009-02-19 05:06:57 -05:00
|
|
|
rendered-image draw-texture ;
|
2009-02-11 05:55:33 -05:00
|
|
|
|
2009-02-12 02:39:03 -05:00
|
|
|
: draw-scaled-image ( dim image-name -- )
|
2009-02-19 05:06:57 -05:00
|
|
|
rendered-image draw-scaled-texture ;
|
2009-02-12 02:39:03 -05:00
|
|
|
|
2009-02-11 05:55:33 -05:00
|
|
|
: image-dim ( image-name -- dim )
|
2009-06-02 21:39:51 -04:00
|
|
|
cached-image dim>> ;
|
2010-06-27 16:45:04 -04:00
|
|
|
|
2010-07-16 14:36:20 -04:00
|
|
|
{
|
2011-11-02 14:23:41 -04:00
|
|
|
{ [ os macosx? ] [ "images.loader.cocoa" require ] }
|
2011-11-02 12:38:03 -04:00
|
|
|
{ [ os windows? ] [ "images.loader.gdiplus" require ] }
|
|
|
|
[ "images.loader.gtk" require ]
|
2010-07-16 14:36:20 -04:00
|
|
|
} cond
|