Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2010-05-07 19:18:04 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2010-05-07 19:18:04 +0400
commit008863daec1249d1f17bc69e1105e336db690d63 (patch)
tree78a4001857b26a287125a3f5fa31496052f6ebdd /source/blender/imbuf/intern/IMB_filetype.h
parent1613829e8e821321da99cad4790b7e6a1d90cea8 (diff)
Merge image related changes from the render branch. This includes the image
tile cache code in imbuf, but it is not hooked up to the render engine. Imbuf module: some small refactoring and removing a lot of unused or old code (about 6.5k lines). * Added a ImFileType struct with callbacks to make adding an file format type, or making changes to the API easier. * Move imbuf init/exit code into IMB_init()/IMB_exit() functions. * Increased mipmap levels from 10 to 20, you run into this limit already with a 2k image. * Removed hamx, amiga, anim5 format support. * Removed colormap saving, only simple colormap code now for reading tga. * Removed gen_dynlibtiff.py, editing this is almost as much work as just editing the code directly. * Functions removed that were only used for sequencer plugin API: IMB_anim_nextpic, IMB_clever_double, IMB_antialias, IMB_gamwarp, IMB_scalefieldImBuf, IMB_scalefastfieldImBuf, IMB_onethird, IMB_halflace, IMB_dit0, IMB_dit2, IMB_cspace * Write metadata info into OpenEXR images. Can be viewed with the command line utility 'exrheader' For the image tile cache code, see this page: http://wiki.blender.org/index.php/Dev:2.5/Source/Imaging/ImageTileCache
Diffstat (limited to 'source/blender/imbuf/intern/IMB_filetype.h')
-rw-r--r--source/blender/imbuf/intern/IMB_filetype.h120
1 files changed, 120 insertions, 0 deletions
diff --git a/source/blender/imbuf/intern/IMB_filetype.h b/source/blender/imbuf/intern/IMB_filetype.h
new file mode 100644
index 00000000000..f6afe20cb5c
--- /dev/null
+++ b/source/blender/imbuf/intern/IMB_filetype.h
@@ -0,0 +1,120 @@
+/**
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Blender Foundation 2010.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef IMB_FILETYPE_H
+#define IMB_FILETYPE_H
+
+/* Generic File Type */
+
+struct ImBuf;
+
+#define IM_FTYPE_FLOAT 1
+
+typedef struct ImFileType {
+ void (*init)(void);
+ void (*exit)(void);
+
+ int (*is_a)(unsigned char *buf);
+ int (*ftype)(struct ImFileType *type, struct ImBuf *ibuf);
+ struct ImBuf *(*load)(unsigned char *mem, int size, int flags);
+ int (*save)(struct ImBuf *ibuf, char *name, int flags);
+ void (*load_tile)(struct ImBuf *ibuf, unsigned char *mem, int size, int tx, int ty, unsigned int *rect);
+
+ int flag;
+ int filetype;
+} ImFileType;
+
+extern ImFileType IMB_FILE_TYPES[];
+
+void imb_filetypes_init(void);
+void imb_filetypes_exit(void);
+
+void imb_tile_cache_init(void);
+void imb_tile_cache_exit(void);
+
+void imb_loadtile(struct ImBuf *ibuf, int tx, int ty, unsigned int *rect);
+void imb_tile_cache_tile_free(struct ImBuf *ibuf, int tx, int ty);
+
+/* Type Specific Functions */
+
+/* png */
+int imb_is_a_png(unsigned char *buf);
+struct ImBuf *imb_loadpng(unsigned char *mem, int size, int flags);
+int imb_savepng(struct ImBuf *ibuf, char *name, int flags);
+
+/* targa */
+int imb_is_a_targa(unsigned char *buf);
+struct ImBuf *imb_loadtarga(unsigned char *mem, int size, int flags);
+int imb_savetarga(struct ImBuf * ibuf, char *name, int flags);
+
+/* iris */
+int imb_is_a_iris(unsigned char *mem);
+struct ImBuf *imb_loadiris(unsigned char *mem, int size, int flags);
+int imb_saveiris(struct ImBuf * ibuf, char *name, int flags);
+
+/* jp2 */
+int imb_is_a_jp2(unsigned char *buf);
+struct ImBuf *imb_jp2_decode(unsigned char *mem, int size, int flags);
+int imb_savejp2(struct ImBuf *ibuf, char *name, int flags);
+
+/* jpeg */
+int imb_is_a_jpeg(unsigned char *mem);
+int imb_savejpeg(struct ImBuf * ibuf, char * name, int flags);
+struct ImBuf * imb_ibJpegImageFromFilename (const char * filename, int flags);
+struct ImBuf * imb_load_jpeg (unsigned char * buffer, int size, int flags);
+
+/* bmp */
+int imb_is_a_bmp(unsigned char *buf);
+struct ImBuf *imb_bmp_decode(unsigned char *mem, int size, int flags);
+int imb_savebmp(struct ImBuf *ibuf, char *name, int flags);
+
+/* cocoa */
+struct ImBuf *imb_cocoaLoadImage(unsigned char *mem, int size, int flags);
+short imb_cocoaSaveImage(struct ImBuf *ibuf, char *name, int flags);
+
+/* cineon */
+int imb_savecineon(struct ImBuf *buf, char *myfil, int flags);
+struct ImBuf *imb_loadcineon(unsigned char *mem, int size, int flags);
+int imb_is_cineon(unsigned char *buf);
+
+/* dpx */
+int imb_save_dpx(struct ImBuf *buf, char *myfile, int flags);
+struct ImBuf *imb_loaddpx(unsigned char *mem, int size, int flags);
+int imb_is_dpx(unsigned char *buf);
+
+/* hdr */
+int imb_is_a_hdr(unsigned char *buf);
+struct ImBuf *imb_loadhdr(unsigned char *mem, int size, int flags);
+int imb_savehdr(struct ImBuf * ibuf, char *name, int flags);
+
+/* tiff */
+int imb_is_a_tiff(unsigned char *buf);
+struct ImBuf *imb_loadtiff(unsigned char *mem, int size, int flags);
+void imb_loadtiletiff(struct ImBuf *ibuf, unsigned char *mem, int size,
+ int tx, int ty, unsigned int *rect);
+int imb_savetiff(struct ImBuf *ibuf, char *name, int flags);
+void *libtiff_findsymbol(char *name);
+
+#endif /* IMB_FILETYPE_H */
+