[Bf-blender-cvs] [c06bfe9d09c] blender2.8: UI: Remove hardcoded 11 uniform parameters

Dalai Felinto noreply at git.blender.org
Sat Apr 28 16:57:24 CEST 2018


Commit: c06bfe9d09c33cebdffd2c840252d4863fd8ca33
Author: Dalai Felinto
Date:   Sat Apr 28 01:29:51 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBc06bfe9d09c33cebdffd2c840252d4863fd8ca33

UI: Remove hardcoded 11 uniform parameters

Using a define makes it easy to increase this later.

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

M	source/blender/editors/interface/interface_widgets.c
M	source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl

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

diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c
index bd6ee41a6de..0a1c35961fd 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -1032,6 +1032,7 @@ static void widgetbase_set_uniform_colors_ubv(
 
 /* keep in sync with shader */
 #define MAX_WIDGET_BASE_BATCH 6
+#define MAX_WIDGET_PARAMETERS 11
 
 struct {
 	Gwn_Batch *batch; /* Batch type */
@@ -1051,13 +1052,14 @@ void UI_widgetbase_draw_cache_flush(void)
 	if (g_widget_base_batch.count == 1) {
 		/* draw single */
 		GWN_batch_program_set_builtin(batch, GPU_SHADER_2D_WIDGET_BASE);
-		GWN_batch_uniform_4fv_array(batch, "parameters", 11, (float *)g_widget_base_batch.params);
+		GWN_batch_uniform_4fv_array(batch, "parameters", MAX_WIDGET_PARAMETERS, (float *)g_widget_base_batch.params);
 		GWN_batch_uniform_3fv(batch, "checkerColorAndSize", checker_params);
 		GWN_batch_draw(batch);
 	}
 	else {
 		GWN_batch_program_set_builtin(batch, GPU_SHADER_2D_WIDGET_BASE_INST);
-		GWN_batch_uniform_4fv_array(batch, "parameters", 11 * MAX_WIDGET_BASE_BATCH, (float *)g_widget_base_batch.params);
+		GWN_batch_uniform_4fv_array(batch, "parameters", MAX_WIDGET_PARAMETERS * MAX_WIDGET_BASE_BATCH,
+		                            (float *)g_widget_base_batch.params);
 		GWN_batch_uniform_3fv(batch, "checkerColorAndSize", checker_params);
 		gpuBindMatrices(batch->interface);
 		GWN_batch_draw_range_ex(batch, 0, g_widget_base_batch.count, true);
diff --git a/source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl b/source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl
index 7ae65dbc32a..9d0bacde1ff 100644
--- a/source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl
@@ -78,31 +78,32 @@ const vec2 triavec[37] = vec2[37](
 
 uniform mat4 ModelViewProjectionMatrix;
 
+#define MAX_PARAM 11
 #ifdef USE_INSTANCE
 #define MAX_INSTANCE 6
-uniform vec4 parameters[11 * MAX_INSTANCE];
+uniform vec4 parameters[MAX_PARAM * MAX_INSTANCE];
 #else
-uniform vec4 parameters[11];
+uniform vec4 parameters[MAX_PARAM];
 #endif
 
 /* gl_InstanceID is 0 if not drawing instances. */
-#define recti        parameters[gl_InstanceID * 11 + 0]
-#define rect         parameters[gl_InstanceID * 11 + 1]
-#define radsi        parameters[gl_InstanceID * 11 + 2].x
-#define rads         parameters[gl_InstanceID * 11 + 2].y
-#define faci         parameters[gl_InstanceID * 11 + 2].zw
-#define roundCorners parameters[gl_InstanceID * 11 + 3]
-#define colorInner1  parameters[gl_InstanceID * 11 + 4]
-#define colorInner2  parameters[gl_InstanceID * 11 + 5]
-#define colorEdge    parameters[gl_InstanceID * 11 + 6]
-#define colorEmboss  parameters[gl_InstanceID * 11 + 7]
-#define colorTria    parameters[gl_InstanceID * 11 + 8]
-#define tria1Center  parameters[gl_InstanceID * 11 + 9].xy
-#define tria2Center  parameters[gl_InstanceID * 11 + 9].zw
-#define tria1Size    parameters[gl_InstanceID * 11 + 10].x
-#define tria2Size    parameters[gl_InstanceID * 11 + 10].y
-#define shadeDir     parameters[gl_InstanceID * 11 + 10].z
-#define doAlphaCheck parameters[gl_InstanceID * 11 + 10].w
+#define recti         parameters[gl_InstanceID * MAX_PARAM + 0]
+#define rect          parameters[gl_InstanceID * MAX_PARAM + 1]
+#define radsi         parameters[gl_InstanceID * MAX_PARAM + 2].x
+#define rads          parameters[gl_InstanceID * MAX_PARAM + 2].y
+#define faci          parameters[gl_InstanceID * MAX_PARAM + 2].zw
+#define roundCorners  parameters[gl_InstanceID * MAX_PARAM + 3]
+#define colorInner1   parameters[gl_InstanceID * MAX_PARAM + 4]
+#define colorInner2   parameters[gl_InstanceID * MAX_PARAM + 5]
+#define colorEdge     parameters[gl_InstanceID * MAX_PARAM + 6]
+#define colorEmboss   parameters[gl_InstanceID * MAX_PARAM + 7]
+#define colorTria     parameters[gl_InstanceID * MAX_PARAM + 8]
+#define tria1Center   parameters[gl_InstanceID * MAX_PARAM + 9].xy
+#define tria2Center   parameters[gl_InstanceID * MAX_PARAM + 9].zw
+#define tria1Size     parameters[gl_InstanceID * MAX_PARAM + 10].x
+#define tria2Size     parameters[gl_InstanceID * MAX_PARAM + 10].y
+#define shadeDir      parameters[gl_InstanceID * MAX_PARAM + 10].z
+#define doAlphaCheck  parameters[gl_InstanceID * MAX_PARAM + 10].w
 
 in uint vflag;



More information about the Bf-blender-cvs mailing list