! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs cache combinators images.loader kernel
-math memoize namespaces opengl.textures sequences system
-ui.gadgets.worlds vocabs ;
+math memoize namespaces opengl opengl.textures sequences
+splitting system ui.gadgets.worlds vocabs ;
IN: ui.images
TUPLE: image-name path ;
C: <image-name> image-name
-MEMO: cached-image ( image-name -- image )
- path>> load-image t >>2x? ;
+<PRIVATE
+
+MEMO: cached-image-path ( path -- image )
+ [ load-image ] [ "@2x" swap subseq? >>2x? ] bi ;
+
+PRIVATE>
+
+: cached-image ( image-name -- image )
+ path>> gl-scale-factor get-global 1.0 > [
+ "." split1-last "@2x." glue
+ ] when cached-image-path ;
<PRIVATE
rendered-image draw-scaled-texture ;
: image-dim ( image-name -- dim )
- cached-image dim>> [ 2 / ] map ;
+ cached-image [ dim>> ] [ 2x?>> [ [ 2 / ] map ] when ] bi ;
{
{ [ os macosx? ] [ "images.loader.cocoa" require ] }