]> gitweb.factorcode.org Git - factor.git/commitdiff
images.loader: optionally register "non-system" image classes.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 14 Mar 2014 14:31:27 +0000 (07:31 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 14 Mar 2014 14:32:27 +0000 (07:32 -0700)
basis/images/loader/loader.factor
extra/images/bitmap/bitmap.factor
extra/images/gif/gif.factor
extra/images/pbm/pbm.factor
extra/images/pgm/pgm.factor
extra/images/png/png.factor
extra/images/ppm/ppm.factor
extra/images/tga/tga.factor
extra/images/tiff/tiff.factor
unmaintained/images/jpeg/jpeg.factor

index a97315f884cc05dd8a9fa49b39925929a7a9641b..a50391b1bdeac0872edb81baa7fb8f072f031a01 100644 (file)
@@ -32,6 +32,9 @@ GENERIC: stream>image* ( stream class -- image )
 : register-image-class ( extension class -- )
     swap types get set-at ;
 
+: ?register-image-class ( extension class -- )
+    over types get key? [ 2drop ] [ register-image-class ] if ;
+
 : load-image ( path -- image )
     [ binary <file-reader> ] [ image-class ] bi load-image* ;
 
index 80a975d887a38d29215f011cd3495df165c59fd2..2ac2326e3296c5c85f2ebf38aa2c70bda5fdfe49 100644 (file)
@@ -14,7 +14,7 @@ IN: images.bitmap
 ! http://www.digicamsoft.com/bmp/bmp.html
 
 SINGLETON: bmp-image
-"bmp" bmp-image register-image-class
+"bmp" bmp-image ?register-image-class
 
 : write2 ( n -- ) 2 >le write ;
 : write4 ( n -- ) 4 >le write ;
index 25776bffdd949732247a422ededef5a6fde9855b..cdfd9d1a5ad90daf6e1992e15e7c5d7af91b7e33 100644 (file)
@@ -7,7 +7,7 @@ kernel make math math.bitwise namespaces sequences ;
 IN: images.gif
 
 SINGLETON: gif-image
-"gif" gif-image register-image-class
+"gif" gif-image ?register-image-class
 
 TUPLE: loading-gif
 loading?
index efba26c7b2ffd9950b29aaa1b85414656d5e9b5b..ae1b2582461c62c5979afc0a43005fe0e2b9a7cd 100644 (file)
@@ -7,7 +7,7 @@ sequences io.streams.throwing ;
 IN: images.pbm
 
 SINGLETON: pbm-image
-"pbm" pbm-image register-image-class
+"pbm" pbm-image ?register-image-class
 
 <PRIVATE
 : read-token ( -- token )
index d8e1033c903ef6cb527520d3bb98afafce6b163e..d7ea44c88604cb1f4a3563b3ad65ed9754861476 100644 (file)
@@ -7,7 +7,7 @@ SPECIALIZED-ARRAY: ushort
 IN: images.pgm
 
 SINGLETON: pgm-image
-"pgm" pgm-image register-image-class
+"pgm" pgm-image ?register-image-class
 
 : read-token ( -- token )
     [ read1 dup blank?
index f39285ad386ba5105a7fb66091c9261e2b8e199e..ffd0a7a09dafe7bb48f73ca76490cf5259af05c5 100644 (file)
@@ -11,7 +11,7 @@ QUALIFIED: math
 IN: images.png
 
 SINGLETON: png-image
-"png" png-image register-image-class
+"png" png-image ?register-image-class
 
 TUPLE: loading-png
     chunks
index 326edc8f1102d73177bbd3520afed6a381376458..34d3a288b089a4c3f98f20fbca1c044fc5aa70dd 100755 (executable)
@@ -6,7 +6,7 @@ math.parser sequences io.streams.throwing ;
 IN: images.ppm
 
 SINGLETON: ppm-image
-"ppm" ppm-image register-image-class
+"ppm" ppm-image ?register-image-class
 
 : read-token ( -- token )
     [ read1 dup blank?
index 70ab3e1df9737e4ee3809395289917e3ecbe7ff9..debf66d0f36d40d81b71e476ac2f913103548d3f 100644 (file)
@@ -7,7 +7,7 @@ ui.pixel-formats combinators continuations io.streams.throwing ;
 IN: images.tga
 
 SINGLETON: tga-image
-"tga" tga-image register-image-class
+"tga" tga-image ?register-image-class
 
 ERROR: bad-tga-header ;
 ERROR: bad-tga-footer ;
index bdba422fd8f1633e6ac8cb0b9c70574c2117fcb3..5abf233a2fe6036f4c462a87bfffce7958404940 100755 (executable)
@@ -563,4 +563,4 @@ ERROR: unknown-component-order ifd ;
 M: tiff-image stream>image* ( stream tiff-image -- image )
     drop [ [ load-tiff tiff>image ] throw-on-eof ] with-input-stream ;
 
-{ "tif" "tiff" } [ tiff-image register-image-class ] each
+{ "tif" "tiff" } [ tiff-image ?register-image-class ] each
index d18412e0c1e221f8c64775a70eff4fca0b543cc7..4b530091eeb31943cb7a7bdb36e9b6bac3195ffd 100644 (file)
@@ -21,8 +21,7 @@ TUPLE: loading-jpeg < image
     { huff-tables initial: { f f f f } }
     { components } ;
 
-"jpg" jpeg-image register-image-class
-"jpeg" jpeg-image register-image-class
+{ "jpg" "jpeg" } [ jpeg-image ?register-image-class ] each
 
 <PRIVATE