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:
authorTon Roosendaal <ton@blender.org>2006-12-20 20:57:56 +0300
committerTon Roosendaal <ton@blender.org>2006-12-20 20:57:56 +0300
commit253432bfc7c2a1dae224a03fb3055de19743ec67 (patch)
tree2cea30606f9f29be51d5366ddf0d3747b9649b90 /source/blender/imbuf/intern/openexr/openexr_multi.h
parent0a0753b409221b66f5003d8c257426043ada227e (diff)
The Big Image refactor!
Please read: http://www.blender3d.org/cms/Imaging.834.0.html Or in short: - adding MultiLayer Image support - recoded entire Image API - better integration of movie/sequence Images Was a whole load of work... went down for a week to do this. So, will need a lot of testing! Will be in irc all evening.
Diffstat (limited to 'source/blender/imbuf/intern/openexr/openexr_multi.h')
-rw-r--r--source/blender/imbuf/intern/openexr/openexr_multi.h23
1 files changed, 20 insertions, 3 deletions
diff --git a/source/blender/imbuf/intern/openexr/openexr_multi.h b/source/blender/imbuf/intern/openexr/openexr_multi.h
index ff71aab5f3c..feceb227e4b 100644
--- a/source/blender/imbuf/intern/openexr/openexr_multi.h
+++ b/source/blender/imbuf/intern/openexr/openexr_multi.h
@@ -32,28 +32,41 @@
/* experiment with more advanced exr api */
+/* Note: as for now openexr only supports 32 chars in channel names.
+ This api also supports max 8 channels per pass now. easy to fix! */
+#define EXR_LAY_MAXNAME 19
+#define EXR_PASS_MAXNAME 11
+#define EXR_TOT_MAXNAME 32
+#define EXR_PASS_MAXCHAN 8
+
+
#ifdef WITH_OPENEXR
void * IMB_exr_get_handle (void);
-void IMB_exr_add_channel (void *handle, const char *layname, const char *channame);
+void IMB_exr_add_channel (void *handle, const char *layname, const char *passname, int xstride, int ystride, float *rect);
int IMB_exr_begin_read (void *handle, char *filename, int *width, int *height);
void IMB_exr_begin_write (void *handle, char *filename, int width, int height);
void IMB_exrtile_begin_write (void *handle, char *filename, int width, int height, int tilex, int tiley);
-void IMB_exr_set_channel (void *handle, char *layname, char *channame, int xstride, int ystride, float *rect);
+void IMB_exr_set_channel (void *handle, char *layname, char *passname, int xstride, int ystride, float *rect);
void IMB_exr_read_channels (void *handle);
void IMB_exr_write_channels (void *handle);
void IMB_exrtile_write_channels (void *handle, int partx, int party);
+void IMB_exr_multilayer_convert (void *handle, void *base,
+ void * (*addlayer)(void *base, char *str),
+ void (*addpass)(void *base, void *lay, char *str, float *rect, int totchan, char *chan_id));
+
void IMB_exr_close (void *handle);
+
#else
/* ugly... but we only use it on pipeline.c, render module, now */
void * IMB_exr_get_handle (void) {return NULL;}
-void IMB_exr_add_channel (void *handle, const char *layname, const char *channame) {}
+void IMB_exr_add_channel (void *handle, const char *layname, const char *channame, int xstride, int ystride, float *rect) {}
int IMB_exr_begin_read (void *handle, char *filename, int *width, int *height) {return 0;}
void IMB_exr_begin_write (void *handle, char *filename, int width, int height) {}
@@ -65,6 +78,10 @@ void IMB_exr_read_channels (void *handle) {}
void IMB_exr_write_channels (void *handle) {}
void IMB_exrtile_write_channels (void *handle, int partx, int party) {}
+void IMB_exr_multilayer_convert (void *handle, void *base,
+ void * (*addlayer)(void *base, char *str),
+ void (*addpass)(void *base, void *lay, char *str, float *rect, int totchan, char *chan_id)) {}
+
void IMB_exr_close (void *handle) {}
#endif