[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