[Bf-blender-cvs] [fcbf89b] multiview: stereoimbuf: replace array with struct since index lookups

Campbell Barton noreply at git.blender.org
Tue Mar 17 06:20:03 CET 2015


Commit: fcbf89b4d61b4672c8aae38a4dd32a249a7ec0f2
Author: Campbell Barton
Date:   Tue Mar 17 16:17:36 2015 +1100
Branches: multiview
https://developer.blender.org/rBfcbf89b4d61b4672c8aae38a4dd32a249a7ec0f2

stereoimbuf: replace array with struct since index lookups

Index access weren't used anywhere and made it a little harder to follow.

===================================================================

M	source/blender/imbuf/intern/stereoimbuf.c

===================================================================

diff --git a/source/blender/imbuf/intern/stereoimbuf.c b/source/blender/imbuf/intern/stereoimbuf.c
index d263ecf..5183b68 100644
--- a/source/blender/imbuf/intern/stereoimbuf.c
+++ b/source/blender/imbuf/intern/stereoimbuf.c
@@ -57,8 +57,8 @@ static void imb_stereo_write_doit(struct Stereo3DData *s3d_data, struct Stereo3d
 static void imb_stereo_read_doit(struct Stereo3DData *s3d_data, struct Stereo3dFormat *s3d);
 
 typedef struct Stereo3DData {
-	float *rectf[3];
-	uchar *rect[3];
+	struct { float *left, *right, *stereo; } rectf;
+	struct { uchar *left, *right, *stereo; } rect;
 	size_t x, y, channels;
 	bool is_float;
 } Stereo3DData;
@@ -86,15 +86,15 @@ static void imb_stereo_write_anaglyph(Stereo3DData *s3d, enum eStereo3dAnaglyphT
 	b = anaglyph_encoding[mode][2];
 
 	if (s3d->is_float) {
-		float *rect_to = s3d->rectf[2];
-		float *rect_left = s3d->rectf[0];
-		float *rect_right = s3d->rectf[1];
+		float *rect_left  = s3d->rectf.left;
+		float *rect_right = s3d->rectf.right;
+		float *rect_to    = s3d->rectf.stereo;
 
 		if (channels == 3) {
 			for (y = 0; y < height; y++) {
 				float *to = rect_to + stride_to * y * 3;
 				float *from[2] = {
-				        rect_left + stride_from * y * 3,
+				        rect_left  + stride_from * y * 3,
 				        rect_right + stride_from * y * 3,
 				};
 
@@ -109,7 +109,7 @@ static void imb_stereo_write_anaglyph(Stereo3DData *s3d, enum eStereo3dAnaglyphT
 			for (y = 0; y < height; y++) {
 				float *to = rect_to + stride_to * y * 4;
 				float *from[2] = {
-				        rect_left + stride_from * y * 4,
+				        rect_left  + stride_from * y * 4,
 				        rect_right + stride_from * y * 4,
 				};
 
@@ -123,15 +123,15 @@ static void imb_stereo_write_anaglyph(Stereo3DData *s3d, enum eStereo3dAnaglyphT
 		}
 	}
 	else {
-		uchar *rect_to = s3d->rect[2];
-		uchar *rect_left = s3d->rect[0];
-		uchar *rect_right = s3d->rect[1];
+		uchar *rect_left  = s3d->rect.left;
+		uchar *rect_right = s3d->rect.right;
+		uchar *rect_to    = s3d->rect.stereo;
 
 		if (channels == 3) {
 			for (y = 0; y < height; y++) {
 				uchar *to = rect_to + stride_to * y * 3;
 				uchar *from[2] = {
-				        rect_left + stride_from * y * 3,
+				        rect_left  + stride_from * y * 3,
 				        rect_right + stride_from * y * 3,
 				};
 
@@ -146,7 +146,7 @@ static void imb_stereo_write_anaglyph(Stereo3DData *s3d, enum eStereo3dAnaglyphT
 			for (y = 0; y < height; y++) {
 				uchar *to = rect_to + stride_to * y * 4;
 				uchar *from[2] = {
-				        rect_left + stride_from * y * 4,
+				        rect_left  + stride_from * y * 4,
 				        rect_right + stride_from * y * 4,
 				};
 
@@ -172,9 +172,9 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 	const int stride_to = width;
 
 	if (s3d->is_float) {
-		float *rect_to = s3d->rectf[2];
-		const float *rect_left = s3d->rectf[0];
-		const float *rect_right = s3d->rectf[1];
+		const float *rect_left  = s3d->rectf.left;
+		const float *rect_right = s3d->rectf.right;
+		float       *rect_to    = s3d->rectf.stereo;
 
 		switch (mode) {
 			case S3D_INTERLACE_ROW:
@@ -183,7 +183,7 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 				for (y = 0; y < height; y++) {
 					float *to = rect_to + stride_to * y * channels;
 					const float *from[2] = {
-					      rect_left + stride_from * y * channels,
+					      rect_left  + stride_from * y * channels,
 					      rect_right + stride_from * y * channels,
 					};
 					memcpy(to, from[i], sizeof(float) * channels * stride_from);
@@ -197,7 +197,7 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 					for (y = 0; y < height; y++) {
 						float *to = rect_to + stride_to * y;
 						const float *from[2] = {
-						      rect_left + stride_from * y,
+						      rect_left  + stride_from * y,
 						      rect_right + stride_from * y,
 						};
 
@@ -212,7 +212,7 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 					for (y = 0; y < height; y++) {
 						float *to = rect_to + stride_to * y * 3;
 						const float *from[2] = {
-						      rect_left + stride_from * y * 3,
+						      rect_left  + stride_from * y * 3,
 						      rect_right + stride_from * y * 3,
 						};
 
@@ -227,7 +227,7 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 					for (y = 0; y < height; y++) {
 						float *to = rect_to + stride_to * y * channels;
 						const float *from[2] = {
-						      rect_left + stride_from * y * channels,
+						      rect_left  + stride_from * y * channels,
 						      rect_right + stride_from * y * channels,
 						};
 
@@ -247,7 +247,7 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 					for (y = 0; y < height; y++) {
 						float *to = rect_to + stride_to * y;
 						const float *from[2] = {
-						        rect_left + stride_from * y,
+						        rect_left  + stride_from * y,
 						        rect_right + stride_from * y,
 						};
 						char j = i;
@@ -263,7 +263,7 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 					for (y = 0; y < height; y++) {
 						float *to = rect_to + stride_to * y * 3;
 						const float *from[2] = {
-						        rect_left + stride_from * y * 3,
+						        rect_left  + stride_from * y * 3,
 						        rect_right + stride_from * y * 3,
 						};
 						char j = i;
@@ -279,7 +279,7 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 					for (y = 0; y < height; y++) {
 						float *to = rect_to + stride_to * y * 4;
 						const float *from[2] = {
-						        rect_left + stride_from * y * 4,
+						        rect_left  + stride_from * y * 4,
 						        rect_right + stride_from * y * 4,
 						};
 						char j = i;
@@ -299,9 +299,9 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 		}
 	}
 	else {
-		uchar *rect_to = s3d->rect[2];
-		const uchar *rect_left = s3d->rect[0];
-		const uchar *rect_right = s3d->rect[1];
+		const uchar *rect_left  = s3d->rect.left;
+		const uchar *rect_right = s3d->rect.right;
+		uchar       *rect_to    = s3d->rect.stereo;
 
 		switch (mode) {
 			case S3D_INTERLACE_ROW:
@@ -310,7 +310,7 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 				for (y = 0; y < height; y++) {
 					uchar *to = rect_to + stride_to * y * channels;
 					const uchar *from[2] = {
-					      rect_left + stride_from * y * channels,
+					      rect_left  + stride_from * y * channels,
 					      rect_right + stride_from * y * channels,
 					};
 					memcpy(to, from[i], sizeof(uchar) * channels * stride_from);
@@ -324,7 +324,7 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 					for (y = 0; y < height; y++) {
 						uchar *to = rect_to + stride_to * y;
 						const uchar *from[2] = {
-						        rect_left + stride_from * y,
+						        rect_left  + stride_from * y,
 						        rect_right + stride_from * y,
 						};
 						char i = (char) swap;
@@ -338,7 +338,7 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 					for (y = 0; y < height; y++) {
 						uchar *to = rect_to + stride_to * y * 3;
 						const uchar *from[2] = {
-						        rect_left + stride_from * y * 3,
+						        rect_left  + stride_from * y * 3,
 						        rect_right + stride_from * y * 3,
 						};
 						char i = (char) swap;
@@ -352,7 +352,7 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 					for (y = 0; y < height; y++) {
 						uchar *to = rect_to + stride_to * y * 4;
 						const uchar *from[2] = {
-						        rect_left + stride_from * y * 4,
+						        rect_left  + stride_from * y * 4,
 						        rect_right + stride_from * y * 4,
 						};
 						char i = (char) swap;
@@ -371,7 +371,7 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 					for (y = 0; y < height; y++) {
 						uchar *to = rect_to + stride_to * y;
 						const uchar *from[2] = {
-						        rect_left + stride_from * y,
+						        rect_left  + stride_from * y,
 						        rect_right + stride_from * y,
 						};
 						char j = i;
@@ -387,7 +387,7 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 					for (y = 0; y < height; y++) {
 						uchar *to = rect_to + stride_to * y * 3;
 						const uchar *from[2] = {
-						        rect_left + stride_from * y * 3,
+						        rect_left  + stride_from * y * 3,
 						        rect_right + stride_from * y * 3,
 						};
 						char j = i;
@@ -403,7 +403,7 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 					for (y = 0; y < height; y++) {
 						uchar *to = rect_to + stride_to * y * 4;
 						const uchar *from[2] = {
-						        rect_left + stride_from * y * 4,
+						        rect_left  + stride_from * y * 4,
 						        rect_right + stride_from * y * 4,
 						};
 						char j = i;
@@ -424,7 +424,7 @@ static void imb_stereo_write_interlace(Stereo3DData *s3d, enum eStereo3dInterlac
 	}
 }
 
-/* stereo output (s3d->rectf[2]) is always unsqueezed */
+/* stereo output (s3d->rectf.stereo) is always unsqueezed */
 static void imb_stereo_write_sidebyside(Stereo3DData *s3d, const bool crosseyed)
 {
 	int y;
@@ -439,14 +439,14 @@ static void imb_stereo_write_sidebyside(Stereo3DData *s3d, const bool crosseyed)
 	const int r = !l;
 
 	if (s3d->is_float) {
-		float *rect_to = s3d->rectf[2];
-		const float *rect_left = s3d->rectf[0];
-		const float *rect_right = s3d->rectf[1];
+		const float *rect_left  = s3d->rectf.left;
+		const float *rect_right = s3d->rectf.right;
+		float       *rect_to    = s3d->rectf.stereo;
 
 		for (y = 0; y < height; y++) {
 			float *to = rect_to + stride_to * y * channels;
 			const float *from[2] = {
-			    rect_left + stride_from * y * channels,
+			    rect_left  + stride_from * y * channels,
 			    rect_right + stride_from * y * channels,
 			};
 
@@ -455,14 +455,14 @@ static void imb_stereo_write_sidebyside(Stereo3DData *s3d, const bool crosseyed)
 		}
 	}
 	else {
-		u

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list