[Bf-blender-cvs] [f54d210] viewport_experiments: Use nice switch statement instead of horrible chained ifs.

Antony Riakiotakis noreply at git.blender.org
Mon Jan 5 18:10:06 CET 2015


Commit: f54d210f2661bfaf82e172eba263e92341467fa5
Author: Antony Riakiotakis
Date:   Mon Jan 5 18:09:40 2015 +0100
Branches: viewport_experiments
https://developer.blender.org/rBf54d210f2661bfaf82e172eba263e92341467fa5

Use nice switch statement instead of horrible chained ifs.

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

M	source/blender/gpu/intern/gpu_extensions.c

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

diff --git a/source/blender/gpu/intern/gpu_extensions.c b/source/blender/gpu/intern/gpu_extensions.c
index f4033a4..08a34b0 100644
--- a/source/blender/gpu/intern/gpu_extensions.c
+++ b/source/blender/gpu/intern/gpu_extensions.c
@@ -1734,27 +1734,35 @@ GPUShader *GPU_shader_get_builtin_fx_shader(int effects, bool persp)
 	}
 
 	if (!GG.shaders.fx_shaders[offset]) {
-		if (effects == GPU_SHADER_FX_SSAO)
-			GG.shaders.fx_shaders[offset] = GPU_shader_create(datatoc_gpu_shader_fx_vert_glsl, datatoc_gpu_shader_fx_ssao_frag_glsl, datatoc_gpu_shader_fx_lib_glsl, defines);
-		else if (effects == GPU_SHADER_FX_DEPTH_OF_FIELD_PASS_ONE) {
-			strcat(defines, "#define FIRST_PASS\n");
-			GG.shaders.fx_shaders[offset] = GPU_shader_create(datatoc_gpu_shader_fx_dof_vert_glsl, datatoc_gpu_shader_fx_dof_frag_glsl, datatoc_gpu_shader_fx_lib_glsl, defines);
-		}
-		else if (effects == GPU_SHADER_FX_DEPTH_OF_FIELD_PASS_TWO) {
-			strcat(defines, "#define SECOND_PASS\n");
-			GG.shaders.fx_shaders[offset] = GPU_shader_create(datatoc_gpu_shader_fx_dof_vert_glsl, datatoc_gpu_shader_fx_dof_frag_glsl, datatoc_gpu_shader_fx_lib_glsl, defines);
-		}
-		else if (effects == GPU_SHADER_FX_DEPTH_OF_FIELD_PASS_THREE) {
-			strcat(defines, "#define THIRD_PASS\n");
-			GG.shaders.fx_shaders[offset] = GPU_shader_create(datatoc_gpu_shader_fx_dof_vert_glsl, datatoc_gpu_shader_fx_dof_frag_glsl, datatoc_gpu_shader_fx_lib_glsl, defines);
-		}
-		else if (effects == GPU_SHADER_FX_DEPTH_OF_FIELD_PASS_FOUR) {
-			strcat(defines, "#define FOURTH_PASS\n");
-			GG.shaders.fx_shaders[offset] = GPU_shader_create(datatoc_gpu_shader_fx_dof_vert_glsl, datatoc_gpu_shader_fx_dof_frag_glsl, datatoc_gpu_shader_fx_lib_glsl, defines);
-		}
-		else if (effects == GPU_SHADER_FX_DEPTH_OF_FIELD_PASS_FIVE) {
-			strcat(defines, "#define FIFTH_PASS\n");
-			GG.shaders.fx_shaders[offset] = GPU_shader_create(datatoc_gpu_shader_fx_dof_vert_glsl, datatoc_gpu_shader_fx_dof_frag_glsl, datatoc_gpu_shader_fx_lib_glsl, defines);
+		switch(effects) {
+			case GPU_SHADER_FX_SSAO:
+				GG.shaders.fx_shaders[offset] = GPU_shader_create(datatoc_gpu_shader_fx_vert_glsl, datatoc_gpu_shader_fx_ssao_frag_glsl, datatoc_gpu_shader_fx_lib_glsl, defines);
+				break;
+				
+			case GPU_SHADER_FX_DEPTH_OF_FIELD_PASS_ONE:
+				strcat(defines, "#define FIRST_PASS\n");
+				GG.shaders.fx_shaders[offset] = GPU_shader_create(datatoc_gpu_shader_fx_dof_vert_glsl, datatoc_gpu_shader_fx_dof_frag_glsl, datatoc_gpu_shader_fx_lib_glsl, defines);
+				break;
+				
+			case GPU_SHADER_FX_DEPTH_OF_FIELD_PASS_TWO:
+				strcat(defines, "#define SECOND_PASS\n");
+				GG.shaders.fx_shaders[offset] = GPU_shader_create(datatoc_gpu_shader_fx_dof_vert_glsl, datatoc_gpu_shader_fx_dof_frag_glsl, datatoc_gpu_shader_fx_lib_glsl, defines);
+				break;
+				
+			case GPU_SHADER_FX_DEPTH_OF_FIELD_PASS_THREE:
+				strcat(defines, "#define THIRD_PASS\n");
+				GG.shaders.fx_shaders[offset] = GPU_shader_create(datatoc_gpu_shader_fx_dof_vert_glsl, datatoc_gpu_shader_fx_dof_frag_glsl, datatoc_gpu_shader_fx_lib_glsl, defines);
+				break;
+				
+			case GPU_SHADER_FX_DEPTH_OF_FIELD_PASS_FOUR:
+				strcat(defines, "#define FOURTH_PASS\n");
+				GG.shaders.fx_shaders[offset] = GPU_shader_create(datatoc_gpu_shader_fx_dof_vert_glsl, datatoc_gpu_shader_fx_dof_frag_glsl, datatoc_gpu_shader_fx_lib_glsl, defines);
+				break;
+				
+			case GPU_SHADER_FX_DEPTH_OF_FIELD_PASS_FIVE:
+				strcat(defines, "#define FIFTH_PASS\n");
+				GG.shaders.fx_shaders[offset] = GPU_shader_create(datatoc_gpu_shader_fx_dof_vert_glsl, datatoc_gpu_shader_fx_dof_frag_glsl, datatoc_gpu_shader_fx_lib_glsl, defines);
+				break;
 		}
 	}




More information about the Bf-blender-cvs mailing list