[Bf-blender-cvs] [9401021f8be] blender2.8: Clay: Simplify matcap manipulation

Sergey Sharybin noreply at git.blender.org
Tue May 8 11:57:29 CEST 2018


Commit: 9401021f8be81f570e16f11d53535968ce82767b
Author: Sergey Sharybin
Date:   Mon May 7 15:28:25 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB9401021f8be81f570e16f11d53535968ce82767b

Clay: Simplify matcap manipulation

No need to hard-coded handling of every individual matcap.

They are in the continuous index range anyway.

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

M	source/blender/draw/engines/clay/clay_engine.c

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

diff --git a/source/blender/draw/engines/clay/clay_engine.c b/source/blender/draw/engines/clay/clay_engine.c
index fe8da3c4888..82a2e808f4c 100644
--- a/source/blender/draw/engines/clay/clay_engine.c
+++ b/source/blender/draw/engines/clay/clay_engine.c
@@ -273,34 +273,7 @@ static struct GPUTexture *load_matcaps(PreviewImage *prv[24], int nbr)
 
 static int matcap_to_index(int matcap)
 {
-	switch (matcap) {
-		case ICON_MATCAP_01: return 0;
-		case ICON_MATCAP_02: return 1;
-		case ICON_MATCAP_03: return 2;
-		case ICON_MATCAP_04: return 3;
-		case ICON_MATCAP_05: return 4;
-		case ICON_MATCAP_06: return 5;
-		case ICON_MATCAP_07: return 6;
-		case ICON_MATCAP_08: return 7;
-		case ICON_MATCAP_09: return 8;
-		case ICON_MATCAP_10: return 9;
-		case ICON_MATCAP_11: return 10;
-		case ICON_MATCAP_12: return 11;
-		case ICON_MATCAP_13: return 12;
-		case ICON_MATCAP_14: return 13;
-		case ICON_MATCAP_15: return 14;
-		case ICON_MATCAP_16: return 15;
-		case ICON_MATCAP_17: return 16;
-		case ICON_MATCAP_18: return 17;
-		case ICON_MATCAP_19: return 18;
-		case ICON_MATCAP_20: return 19;
-		case ICON_MATCAP_21: return 20;
-		case ICON_MATCAP_22: return 21;
-		case ICON_MATCAP_23: return 22;
-		case ICON_MATCAP_24: return 23;
-	}
-	BLI_assert(!"Should not happen");
-	return 0;
+	return (int)matcap - (int)ICON_MATCAP_01;
 }
 
 /* Using Hammersley distribution */
@@ -357,34 +330,14 @@ static void clay_engine_init(void *vedata)
 	/* Create Texture Array */
 	if (!e_data.matcap_array) {
 		PreviewImage *prv[24]; /* For now use all of the 24 internal matcaps */
+		const int num_matcap = ARRAY_SIZE(prv);
 
 		/* TODO only load used matcaps */
-		prv[0]  = UI_icon_to_preview(ICON_MATCAP_01);
-		prv[1]  = UI_icon_to_preview(ICON_MATCAP_02);
-		prv[2]  = UI_icon_to_preview(ICON_MATCAP_03);
-		prv[3]  = UI_icon_to_preview(ICON_MATCAP_04);
-		prv[4]  = UI_icon_to_preview(ICON_MATCAP_05);
-		prv[5]  = UI_icon_to_preview(ICON_MATCAP_06);
-		prv[6]  = UI_icon_to_preview(ICON_MATCAP_07);
-		prv[7]  = UI_icon_to_preview(ICON_MATCAP_08);
-		prv[8]  = UI_icon_to_preview(ICON_MATCAP_09);
-		prv[9]  = UI_icon_to_preview(ICON_MATCAP_10);
-		prv[10] = UI_icon_to_preview(ICON_MATCAP_11);
-		prv[11] = UI_icon_to_preview(ICON_MATCAP_12);
-		prv[12] = UI_icon_to_preview(ICON_MATCAP_13);
-		prv[13] = UI_icon_to_preview(ICON_MATCAP_14);
-		prv[14] = UI_icon_to_preview(ICON_MATCAP_15);
-		prv[15] = UI_icon_to_preview(ICON_MATCAP_16);
-		prv[16] = UI_icon_to_preview(ICON_MATCAP_17);
-		prv[17] = UI_icon_to_preview(ICON_MATCAP_18);
-		prv[18] = UI_icon_to_preview(ICON_MATCAP_19);
-		prv[19] = UI_icon_to_preview(ICON_MATCAP_20);
-		prv[20] = UI_icon_to_preview(ICON_MATCAP_21);
-		prv[21] = UI_icon_to_preview(ICON_MATCAP_22);
-		prv[22] = UI_icon_to_preview(ICON_MATCAP_23);
-		prv[23] = UI_icon_to_preview(ICON_MATCAP_24);
-
-		e_data.matcap_array = load_matcaps(prv, 24);
+		for (int i = 0; i < num_matcap; ++i) {
+			prv[i] = UI_icon_to_preview((int)ICON_MATCAP_01 + i);
+		}
+
+		e_data.matcap_array = load_matcaps(prv, num_matcap);
 	}
 
 	/* Shading pass */



More information about the Bf-blender-cvs mailing list