[Bf-blender-cvs] [9c30eaa] multiview: Cleanup: imbuf API
Campbell Barton
noreply at git.blender.org
Tue Mar 17 05:58:18 CET 2015
Commit: 9c30eaa6753e7d18eb1224a193fb7ddda9bf13f5
Author: Campbell Barton
Date: Tue Mar 17 15:50:32 2015 +1100
Branches: multiview
https://developer.blender.org/rB9c30eaa6753e7d18eb1224a193fb7ddda9bf13f5
Cleanup: imbuf API
use extra arg for IMB_ImBufFromStereo which used the first argument for both input and output.
also no need to use pointer-to-pointer in function body.
===================================================================
M source/blender/blenkernel/intern/image.c
M source/blender/blenkernel/intern/sequencer.c
M source/blender/imbuf/IMB_imbuf.h
M source/blender/imbuf/intern/stereoimbuf.c
===================================================================
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index 4226bfc..7be2669 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -3105,7 +3105,7 @@ static ImBuf *image_load_sequence_file(Image *ima, ImageUser *iuser, int frame)
ibuf_arr[i] = load_sequence_single(ima, iuser, frame, i, &assign);
if ((ima->flag & IMA_IS_STEREO) && ima->views_format == R_IMF_VIEWS_STEREO_3D)
- IMB_ImBufFromStereo(ima->stereo3d_format, &ibuf_arr[0], &ibuf_arr[1]);
+ IMB_ImBufFromStereo(ima->stereo3d_format, ibuf_arr[0], &ibuf_arr[0], &ibuf_arr[1]);
/* return the original requested ImBuf */
ibuf = ibuf_arr[(iuser ? iuser->multi_index : 0)];
@@ -3270,7 +3270,7 @@ static ImBuf *image_load_movie_file(Image *ima, ImageUser *iuser, int frame)
}
if ((ima->flag & IMA_IS_STEREO) && ima->views_format == R_IMF_VIEWS_STEREO_3D)
- IMB_ImBufFromStereo(ima->stereo3d_format, &ibuf_arr[0], &ibuf_arr[1]);
+ IMB_ImBufFromStereo(ima->stereo3d_format, ibuf_arr[0], &ibuf_arr[0], &ibuf_arr[1]);
for (i = 0; i < totviews; i++) {
if (ibuf_arr[i]) {
@@ -3423,7 +3423,7 @@ static ImBuf *image_load_image_file(Image *ima, ImageUser *iuser, int cfra)
ibuf_arr[i] = load_image_single(ima, iuser, cfra, i, has_packed, &assign);
if ((ima->flag & IMA_IS_STEREO) && ima->views_format == R_IMF_VIEWS_STEREO_3D)
- IMB_ImBufFromStereo(ima->stereo3d_format, &ibuf_arr[0], &ibuf_arr[1]);
+ IMB_ImBufFromStereo(ima->stereo3d_format, ibuf_arr[0], &ibuf_arr[0], &ibuf_arr[1]);
/* return the original requested ImBuf */
i = MIN2(iuser ? iuser->multi_index : 0, totviews - 1);
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index 4018962..1269d66 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -3069,7 +3069,7 @@ static ImBuf *do_render_strip_uncached(const SeqRenderData *context, Sequence *s
}
if (seq->views_format == R_IMF_VIEWS_STEREO_3D && ibufs_arr[0])
- IMB_ImBufFromStereo(seq->stereo3d_format, &ibufs_arr[0], &ibufs_arr[1]);
+ IMB_ImBufFromStereo(seq->stereo3d_format, ibufs_arr[0], &ibufs_arr[0], &ibufs_arr[1]);
for (i = 0; i < totviews; i++) {
if (ibufs_arr[i]) {
@@ -3163,7 +3163,7 @@ monoview_image:
if (seq->views_format == R_IMF_VIEWS_STEREO_3D) {
if (ibuf_arr[0]) {
- IMB_ImBufFromStereo(seq->stereo3d_format, &ibuf_arr[0], &ibuf_arr[1]);
+ IMB_ImBufFromStereo(seq->stereo3d_format, ibuf_arr[0], &ibuf_arr[0], &ibuf_arr[1]);
}
else {
/* probably proxy hasn't been created yet */
diff --git a/source/blender/imbuf/IMB_imbuf.h b/source/blender/imbuf/IMB_imbuf.h
index 7bed483..b795a3c 100644
--- a/source/blender/imbuf/IMB_imbuf.h
+++ b/source/blender/imbuf/IMB_imbuf.h
@@ -572,13 +572,25 @@ const char *IMB_ffmpeg_last_error(void);
/**
*
- * \attention Defined in stereoimbuf.c
- */
-void IMB_stereo_write_dimensions(const char mode, const bool is_squeezed, const size_t width, const size_t height, size_t *r_width, size_t *r_height);
-void IMB_stereo_read_dimensions(const char mode, const bool is_squeezed, const size_t width, const size_t height, size_t *r_width, size_t *r_height);
-int *IMB_stereo_from_rect(struct ImageFormatData *im_format, const size_t x, const size_t y, const size_t channels, int *left, int *right);
-float *IMB_stereo_from_rectf(struct ImageFormatData *im_format, const size_t x, const size_t y, const size_t channels, float *left, float *right);
-struct ImBuf *IMB_stereoImBuf(struct ImageFormatData *im_format, struct ImBuf *left, struct ImBuf *right);
-void IMB_ImBufFromStereo(struct Stereo3dFormat *s3d, struct ImBuf **left, struct ImBuf **right);
-#endif
+ * \attention defined in stereoimbuf.c
+ */
+void IMB_stereo_write_dimensions(
+ const char mode, const bool is_squeezed, const size_t width, const size_t height,
+ size_t *r_width, size_t *r_height);
+void IMB_stereo_read_dimensions(
+ const char mode, const bool is_squeezed, const size_t width, const size_t height,
+ size_t *r_width, size_t *r_height);
+int *IMB_stereo_from_rect(
+ struct ImageFormatData *im_format, const size_t x, const size_t y, const size_t channels,
+ int *rect_left, int *rect_right);
+float *IMB_stereo_from_rectf(
+ struct ImageFormatData *im_format, const size_t x, const size_t y, const size_t channels,
+ float *rectf_left, float *rectf_right);
+struct ImBuf *IMB_stereoImBuf(
+ struct ImageFormatData *im_format,
+ struct ImBuf *ibuf_left, struct ImBuf *ibuf_right);
+void IMB_ImBufFromStereo(
+ struct Stereo3dFormat *s3d, struct ImBuf *ibuf_stereo,
+ struct ImBuf **r_ibuf_left, struct ImBuf **r_ibuf_right);
+#endif
diff --git a/source/blender/imbuf/intern/stereoimbuf.c b/source/blender/imbuf/intern/stereoimbuf.c
index 4090e38..11142c8 100644
--- a/source/blender/imbuf/intern/stereoimbuf.c
+++ b/source/blender/imbuf/intern/stereoimbuf.c
@@ -519,7 +519,9 @@ static void imb_stereo_write_topbottom(Stereo3DData *s3d)
/**************************** dimension utils ****************************************/
-void IMB_stereo_write_dimensions(const char mode, const bool is_squeezed, const size_t width, const size_t height, size_t *r_width, size_t *r_height)
+void IMB_stereo_write_dimensions(
+ const char mode, const bool is_squeezed, const size_t width, const size_t height,
+ size_t *r_width, size_t *r_height)
{
switch (mode) {
case S3D_DISPLAY_BLURAY:
@@ -550,7 +552,9 @@ void IMB_stereo_write_dimensions(const char mode, const bool is_squeezed, const
}
}
-void IMB_stereo_read_dimensions(const char mode, const bool is_squeezed, const size_t width, const size_t height, size_t *r_width, size_t *r_height)
+void IMB_stereo_read_dimensions(
+ const char mode, const bool is_squeezed, const size_t width, const size_t height,
+ size_t *r_width, size_t *r_height)
{
switch (mode) {
case S3D_DISPLAY_BLURAY:
@@ -621,9 +625,9 @@ static void imb_stereo_squeeze_rectf(float *rectf, Stereo3dFormat *s3d, const si
ibuf = IMB_allocImBuf(width, height, channels, IB_rectfloat);
IMB_buffer_float_from_float(
- ibuf->rect_float, rectf, channels,
- IB_PROFILE_LINEAR_RGB, IB_PROFILE_LINEAR_RGB, false,
- width, height, width, width);
+ ibuf->rect_float, rectf, channels,
+ IB_PROFILE_LINEAR_RGB, IB_PROFILE_LINEAR_RGB, false,
+ width, height, width, width);
IMB_scaleImBuf_threaded(ibuf, x, y);
rectf = MEM_dupallocN(ibuf->rect_float);
@@ -646,9 +650,9 @@ static void imb_stereo_squeeze_rect(int *rect, Stereo3dFormat *s3d, const size_t
ibuf = IMB_allocImBuf(width, height, channels, IB_rect);
IMB_buffer_byte_from_byte(
- (unsigned char *)ibuf->rect, (unsigned char *)rect,
- IB_PROFILE_SRGB, IB_PROFILE_SRGB, false,
- width, height, width, width);
+ (unsigned char *)ibuf->rect, (unsigned char *)rect,
+ IB_PROFILE_SRGB, IB_PROFILE_SRGB, false,
+ width, height, width, width);
IMB_scaleImBuf_threaded(ibuf, x, y);
rect = MEM_dupallocN(ibuf->rect);
@@ -658,24 +662,27 @@ static void imb_stereo_squeeze_rect(int *rect, Stereo3dFormat *s3d, const size_t
/*************************** preparing to call the write functions **************************/
-static void imb_stereo_data_initialize(Stereo3DData *s3d_data, const bool is_float,
- const size_t x, const size_t y, const size_t channels,
- int *left_rect, int *right_rect, int *stereo_rect,
- float *left_rectf, float *right_rectf, float *stereo_rectf)
+static void imb_stereo_data_initialize(
+ Stereo3DData *s3d_data, const bool is_float,
+ const size_t x, const size_t y, const size_t channels,
+ int *rect_left, int *rect_right, int *rect_stereo,
+ float *rectf_left, float *rectf_right, float *rectf_stereo)
{
s3d_data->is_float = is_float;
s3d_data->x = x;
s3d_data->y = y;
s3d_data->channels = channels;
- s3d_data->rect[0] = (uchar *)left_rect;
- s3d_data->rect[1] = (uchar *)right_rect;
- s3d_data->rect[2] = (uchar *)stereo_rect;
- s3d_data->rectf[0] = left_rectf;
- s3d_data->rectf[1] = right_rectf;
- s3d_data->rectf[2] = stereo_rectf;
+ s3d_data->rect[0] = (uchar *)rect_left;
+ s3d_data->rect[1] = (uchar *)rect_right;
+ s3d_data->rect[2] = (uchar *)rect_stereo;
+ s3d_data->rectf[0] = rectf_left;
+ s3d_data->rectf[1] = rectf_right;
+ s3d_data->rectf[2] = rectf_stereo;
}
-int *IMB_stereo_from_rect(ImageFormatData *im_format, const size_t x, const size_t y, const size_t channels, int *left, int *right)
+int *IMB_stereo_from_rect(
+ ImageFormatData *im_format, const size_t x, const size_t y, const size_t channels,
+ int *rect_left, int *rect_right)
{
int *r_rect;
Stereo3DData s3d_data = {{NULL}};
@@ -685,14 +692,16 @@ int *IMB_stereo_from_rect(ImageFormatData *im_format, const size_t x, const size
IMB_stereo_write_dimensions(im_format->stereo3d_format.display_mode, false, x, y, &width, &height);
r_rect = MEM_mallocN(channels * sizeof(int) * width * height, __func__);
- imb_stereo_data_initialize(&s3d_data, is_float, x, y, channels, left, right, r_rect, NULL, NULL, NULL);
+ imb_stereo_data_initialize(&s3d_data, is_float, x, y, channels, rect_left, rect_right, r_rect, NULL, NULL, NULL);
imb_stereo_write_doit(&s3d_data, &im_format->stereo3d_format);
imb_stereo_squeeze_rect(r_rect, &im_format->stereo3d_format, x, y, channels);
return r_rect;
}
-float *IMB_stereo_from_rectf(ImageFormatData *im_format, const size_t x, const size_t y, const size_t channels, float *left, float *right)
+float *IMB_stereo_from_rectf(
+ ImageFormatData *im_format, const size_t x, const size_t y, const size_t channels,
+ float *rectf_left, float *rectf_right)
{
float *r_rectf;
Stereo3DData s3d_data = {{NULL}};
@@ -702,7 +711,7 @@ float *IMB_stereo_from_rectf(ImageFormatData *im_format, const size_t x, const s
IMB_stereo_write_dimensions
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list