[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