[Bf-blender-cvs] [d56f835bffa] master: Sequencer: Avoid re-calculation index offset multiple times

Sergey Sharybin noreply at git.blender.org
Fri Oct 6 11:36:50 CEST 2017


Commit: d56f835bffaab78b6ae13db7b61c522a69098a88
Author: Sergey Sharybin
Date:   Fri Oct 6 14:32:17 2017 +0500
Branches: master
https://developer.blender.org/rBd56f835bffaab78b6ae13db7b61c522a69098a88

Sequencer: Avoid re-calculation index offset multiple times

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

M	source/blender/blenkernel/intern/seqeffects.c

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

diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c
index 102cd06ca81..a712b1b201e 100644
--- a/source/blender/blenkernel/intern/seqeffects.c
+++ b/source/blender/blenkernel/intern/seqeffects.c
@@ -1906,49 +1906,53 @@ static void RVBlurBitmap2_float(float *map, int width, int height, float blur, i
 	for (y = 0; y < height; y++) {
 		/* Do the left & right strips */
 		for (x = 0; x < halfWidth; x++) {
-			index = (x + y * width) * 4;
 			fx = 0;
 			zero_v4(curColor);
 			zero_v4(curColor2);
 
 			for (i = x - halfWidth; i < x + halfWidth; i++) {
 				if ((i >= 0) && (i < width)) {
-					curColor[0] += map[(i + y * width) * 4 + GlowR] * filter[fx];
-					curColor[1] += map[(i + y * width) * 4 + GlowG] * filter[fx];
-					curColor[2] += map[(i + y * width) * 4 + GlowB] * filter[fx];
-					curColor[3] += map[(i + y * width) * 4 + GlowA] * filter[fx];
-
-					curColor2[0] += map[(width - 1 - i + y * width) * 4 + GlowR] * filter[fx];
-					curColor2[1] += map[(width - 1 - i + y * width) * 4 + GlowG] * filter[fx];
-					curColor2[2] += map[(width - 1 - i + y * width) * 4 + GlowB] * filter[fx];
-					curColor2[3] += map[(width - 1 - i + y * width) * 4 + GlowA] * filter[fx];
+					index = (i + y * width) * 4;
+					curColor[0] += map[index + GlowR] * filter[fx];
+					curColor[1] += map[index + GlowG] * filter[fx];
+					curColor[2] += map[index + GlowB] * filter[fx];
+					curColor[3] += map[index + GlowA] * filter[fx];
+
+					index = (width - 1 - i + y * width) * 4;
+					curColor2[0] += map[index + GlowR] * filter[fx];
+					curColor2[1] += map[index + GlowG] * filter[fx];
+					curColor2[2] += map[index + GlowB] * filter[fx];
+					curColor2[3] += map[index + GlowA] * filter[fx];
 				}
 				fx++;
 			}
+			index = (x + y * width) * 4;
 			temp[index + GlowR] = curColor[0];
 			temp[index + GlowG] = curColor[1];
 			temp[index + GlowB] = curColor[2];
 			temp[index + GlowA] = curColor[3];
 
-			temp[((width - 1 - x + y * width) * 4) + GlowR] = curColor2[0];
-			temp[((width - 1 - x + y * width) * 4) + GlowG] = curColor2[1];
-			temp[((width - 1 - x + y * width) * 4) + GlowB] = curColor2[2];
-			temp[((width - 1 - x + y * width) * 4) + GlowA] = curColor2[3];
+			index = (width - 1 - x + y * width) * 4;
+			temp[index + GlowR] = curColor2[0];
+			temp[index + GlowG] = curColor2[1];
+			temp[index + GlowB] = curColor2[2];
+			temp[index + GlowA] = curColor2[3];
 
 		}
 
 		/* Do the main body */
 		for (x = halfWidth; x < width - halfWidth; x++) {
-			index = (x + y * width) * 4;
 			fx = 0;
 			zero_v4(curColor);
 			for (i = x - halfWidth; i < x + halfWidth; i++) {
-				curColor[0] += map[(i + y * width) * 4 + GlowR] * filter[fx];
-				curColor[1] += map[(i + y * width) * 4 + GlowG] * filter[fx];
-				curColor[2] += map[(i + y * width) * 4 + GlowB] * filter[fx];
-				curColor[3] += map[(i + y * width) * 4 + GlowA] * filter[fx];
+				index = (i + y * width) * 4;
+				curColor[0] += map[index + GlowR] * filter[fx];
+				curColor[1] += map[index + GlowG] * filter[fx];
+				curColor[2] += map[index + GlowB] * filter[fx];
+				curColor[3] += map[index + GlowA] * filter[fx];
 				fx++;
 			}
+			index = (x + y * width) * 4;
 			temp[index + GlowR] = curColor[0];
 			temp[index + GlowG] = curColor[1];
 			temp[index + GlowB] = curColor[2];
@@ -1963,48 +1967,53 @@ static void RVBlurBitmap2_float(float *map, int width, int height, float blur, i
 	for (x = 0; x < width; x++) {
 		/* Do the top & bottom strips */
 		for (y = 0; y < halfWidth; y++) {
-			index = (x + y * width) * 4;
 			fy = 0;
 			zero_v4(curColor);
 			zero_v4(curColor2);
 			for (i = y - halfWidth; i < y + halfWidth; i++) {
 				if ((i >= 0) && (i < height)) {
 					/* Bottom */
-					curColor[0] += map[(x + i * width) * 4 + GlowR] * filter[fy];
-					curColor[1] += map[(x + i * width) * 4 + GlowG] * filter[fy];
-					curColor[2] += map[(x + i * width) * 4 + GlowB] * filter[fy];
-					curColor[3] += map[(x + i * width) * 4 + GlowA] * filter[fy];
+					index = (x + i * width) * 4;
+					curColor[0] += map[index + GlowR] * filter[fy];
+					curColor[1] += map[index + GlowG] * filter[fy];
+					curColor[2] += map[index + GlowB] * filter[fy];
+					curColor[3] += map[index + GlowA] * filter[fy];
 
 					/* Top */
-					curColor2[0] += map[(x + (height - 1 - i) * width) * 4 + GlowR] * filter[fy];
-					curColor2[1] += map[(x + (height - 1 - i) * width) * 4 + GlowG] * filter[fy];
-					curColor2[2] += map[(x + (height - 1 - i) * width) * 4 + GlowB] * filter[fy];
-					curColor2[3] += map[(x + (height - 1 - i) * width) * 4 + GlowA] * filter[fy];
+					index = (x + (height - 1 - i) * width) * 4;
+					curColor2[0] += map[index + GlowR] * filter[fy];
+					curColor2[1] += map[index + GlowG] * filter[fy];
+					curColor2[2] += map[index + GlowB] * filter[fy];
+					curColor2[3] += map[index + GlowA] * filter[fy];
 				}
 				fy++;
 			}
+			index = (x + y * width) * 4;
 			temp[index + GlowR] = curColor[0];
 			temp[index + GlowG] = curColor[1];
 			temp[index + GlowB] = curColor[2];
 			temp[index + GlowA] = curColor[3];
-			temp[((x + (height - 1 - y) * width) * 4) + GlowR] = curColor2[0];
-			temp[((x + (height - 1 - y) * width) * 4) + GlowG] = curColor2[1];
-			temp[((x + (height - 1 - y) * width) * 4) + GlowB] = curColor2[2];
-			temp[((x + (height - 1 - y) * width) * 4) + GlowA] = curColor2[3];
+
+			index = (x + (height - 1 - y) * width) * 4;
+			temp[index + GlowR] = curColor2[0];
+			temp[index + GlowG] = curColor2[1];
+			temp[index + GlowB] = curColor2[2];
+			temp[index + GlowA] = curColor2[3];
 		}
 	
 		/* Do the main body */
 		for (y = halfWidth; y < height - halfWidth; y++) {
-			index = (x + y * width) * 4;
 			fy = 0;
 			zero_v4(curColor);
 			for (i = y - halfWidth; i < y + halfWidth; i++) {
-				curColor[0] += map[(x + i * width) * 4 + GlowR] * filter[fy];
-				curColor[1] += map[(x + i * width) * 4 + GlowG] * filter[fy];
-				curColor[2] += map[(x + i * width) * 4 + GlowB] * filter[fy];
-				curColor[3] += map[(x + i * width) * 4 + GlowA] * filter[fy];
+				index = (x + i * width) * 4;
+				curColor[0] += map[index + GlowR] * filter[fy];
+				curColor[1] += map[index + GlowG] * filter[fy];
+				curColor[2] += map[index + GlowB] * filter[fy];
+				curColor[3] += map[index + GlowA] * filter[fy];
 				fy++;
 			}
+			index = (x + y * width) * 4;
 			temp[index + GlowR] = curColor[0];
 			temp[index + GlowG] = curColor[1];
 			temp[index + GlowB] = curColor[2];



More information about the Bf-blender-cvs mailing list