[Bf-blender-cvs] [ff53949145] blender2.8: Add diagonal stripe shader (GPU_SHADER_2D_DIAG_STRIPES)

Luca Rood noreply at git.blender.org
Fri Feb 17 03:09:12 CET 2017


Commit: ff539491458cab9689f8454615fbedd65241e40b
Author: Luca Rood
Date:   Thu Feb 16 21:49:20 2017 -0200
Branches: blender2.8
https://developer.blender.org/rBff539491458cab9689f8454615fbedd65241e40b

Add diagonal stripe shader (GPU_SHADER_2D_DIAG_STRIPES)

Reviewed By: merwin

Differential Revision: https://developer.blender.org/D2512

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

M	source/blender/gpu/CMakeLists.txt
M	source/blender/gpu/GPU_shader.h
M	source/blender/gpu/intern/gpu_shader.c
A	source/blender/gpu/shaders/gpu_shader_diag_stripes_frag.glsl

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

diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt
index 805dcb57c4..a59971610e 100644
--- a/source/blender/gpu/CMakeLists.txt
+++ b/source/blender/gpu/CMakeLists.txt
@@ -134,6 +134,7 @@ set(SRC
 data_to_c_simple(shaders/gpu_shader_depth_only_frag.glsl SRC)
 data_to_c_simple(shaders/gpu_shader_uniform_color_frag.glsl SRC)
 data_to_c_simple(shaders/gpu_shader_checker_frag.glsl SRC)
+data_to_c_simple(shaders/gpu_shader_diag_stripes_frag.glsl SRC)
 data_to_c_simple(shaders/gpu_shader_simple_lighting_frag.glsl SRC)
 data_to_c_simple(shaders/gpu_shader_flat_color_frag.glsl SRC)
 data_to_c_simple(shaders/gpu_shader_flat_color_alpha_test_0_frag.glsl SRC)
diff --git a/source/blender/gpu/GPU_shader.h b/source/blender/gpu/GPU_shader.h
index 12b76a2bee..2ebbbba2cc 100644
--- a/source/blender/gpu/GPU_shader.h
+++ b/source/blender/gpu/GPU_shader.h
@@ -109,6 +109,7 @@ typedef enum GPUBuiltinShader {
 	GPU_SHADER_2D_SMOOTH_COLOR,
 	GPU_SHADER_2D_IMAGE_COLOR,
 	GPU_SHADER_2D_CHECKER,
+	GPU_SHADER_2D_DIAG_STRIPES,
 	/* for simple 3D drawing */
 	GPU_SHADER_3D_UNIFORM_COLOR,
 	GPU_SHADER_3D_UNIFORM_COLOR_INSTANCE,
diff --git a/source/blender/gpu/intern/gpu_shader.c b/source/blender/gpu/intern/gpu_shader.c
index f2b026a5ad..8cae197408 100644
--- a/source/blender/gpu/intern/gpu_shader.c
+++ b/source/blender/gpu/intern/gpu_shader.c
@@ -50,6 +50,7 @@
 extern char datatoc_gpu_shader_depth_only_frag_glsl[];
 extern char datatoc_gpu_shader_uniform_color_frag_glsl[];
 extern char datatoc_gpu_shader_checker_frag_glsl[];
+extern char datatoc_gpu_shader_diag_stripes_frag_glsl[];
 extern char datatoc_gpu_shader_simple_lighting_frag_glsl[];
 extern char datatoc_gpu_shader_flat_color_frag_glsl[];
 extern char datatoc_gpu_shader_flat_color_alpha_test_0_frag_glsl[];
@@ -679,6 +680,8 @@ GPUShader *GPU_shader_get_builtin_shader(GPUBuiltinShader shader)
 		                                    datatoc_gpu_shader_image_interlace_frag_glsl },
 		[GPU_SHADER_2D_CHECKER] = { datatoc_gpu_shader_2D_vert_glsl, datatoc_gpu_shader_checker_frag_glsl },
 
+		[GPU_SHADER_2D_DIAG_STRIPES] = { datatoc_gpu_shader_2D_vert_glsl, datatoc_gpu_shader_diag_stripes_frag_glsl },
+
 		[GPU_SHADER_2D_UNIFORM_COLOR] = { datatoc_gpu_shader_2D_vert_glsl, datatoc_gpu_shader_uniform_color_frag_glsl },
 		[GPU_SHADER_2D_FLAT_COLOR] = { datatoc_gpu_shader_2D_flat_color_vert_glsl,
 		                               datatoc_gpu_shader_flat_color_frag_glsl },
diff --git a/source/blender/gpu/shaders/gpu_shader_diag_stripes_frag.glsl b/source/blender/gpu/shaders/gpu_shader_diag_stripes_frag.glsl
new file mode 100644
index 0000000000..74cf1c5a3d
--- /dev/null
+++ b/source/blender/gpu/shaders/gpu_shader_diag_stripes_frag.glsl
@@ -0,0 +1,24 @@
+
+uniform vec4 color1;
+uniform vec4 color2;
+uniform int size1;
+uniform int size2;
+
+#if __VERSION__ == 120
+  #define fragColor gl_FragColor
+#else
+  out vec4 fragColor;
+#endif
+
+void main()
+{
+	float phase = mod((gl_FragCoord.x + gl_FragCoord.y), (size1 + size2));
+
+	if (phase < size1)
+	{
+		fragColor = color1;
+	}
+	else {
+		fragColor = color2;
+	}
+}




More information about the Bf-blender-cvs mailing list