[Bf-blender-cvs] [26c140fbc8] blender2.8: Draw Module: Move the Global Ubo block definition to it's own file.

Clément Foucault noreply at git.blender.org
Wed Mar 22 21:31:59 CET 2017


Commit: 26c140fbc85c6cee4ce7548873c38e6ce2f24c8b
Author: Clément Foucault
Date:   Wed Mar 22 21:26:27 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB26c140fbc85c6cee4ce7548873c38e6ce2f24c8b

Draw Module: Move the Global Ubo block definition to it's own file.

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

M	source/blender/draw/CMakeLists.txt
M	source/blender/draw/intern/DRW_render.h
M	source/blender/draw/intern/draw_manager.c
M	source/blender/draw/modes/edit_mesh_mode.c
A	source/blender/draw/modes/shaders/common_globals_lib.glsl
M	source/blender/draw/modes/shaders/edit_overlay_facedot_frag.glsl
M	source/blender/draw/modes/shaders/edit_overlay_facedot_vert.glsl
M	source/blender/draw/modes/shaders/edit_overlay_facefill_vert.glsl
M	source/blender/draw/modes/shaders/edit_overlay_frag.glsl
M	source/blender/draw/modes/shaders/edit_overlay_geom_edge.glsl
M	source/blender/draw/modes/shaders/edit_overlay_geom_tri.glsl
M	source/blender/draw/modes/shaders/edit_overlay_loosevert_vert.glsl
M	source/blender/gpu/intern/gpu_shader.c

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

diff --git a/source/blender/draw/CMakeLists.txt b/source/blender/draw/CMakeLists.txt
index f8f1408f94..0f635a3578 100644
--- a/source/blender/draw/CMakeLists.txt
+++ b/source/blender/draw/CMakeLists.txt
@@ -103,6 +103,7 @@ data_to_c_simple(engines/eevee/shaders/lit_surface_frag.glsl SRC)
 data_to_c_simple(engines/eevee/shaders/lit_surface_vert.glsl SRC)
 data_to_c_simple(engines/eevee/shaders/tonemap_frag.glsl SRC)
 
+data_to_c_simple(modes/shaders/common_globals_lib.glsl SRC)
 data_to_c_simple(modes/shaders/edit_overlay_frag.glsl SRC)
 data_to_c_simple(modes/shaders/edit_overlay_vert.glsl SRC)
 data_to_c_simple(modes/shaders/edit_overlay_geom_tri.glsl SRC)
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h
index 0fcfa50f48..a9987dc251 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -167,6 +167,7 @@ void DRW_framebuffer_texture_detach(struct GPUTexture *tex);
 void DRW_framebuffer_blit(struct GPUFrameBuffer *fb_read, struct GPUFrameBuffer *fb_write, bool depth);
 /* Shaders */
 struct GPUShader *DRW_shader_create(const char *vert, const char *geom, const char *frag, const char *defines);
+struct GPUShader *DRW_shader_create_with_lib(const char *vert, const char *geom, const char *frag, const char *lib, const char *defines);
 struct GPUShader *DRW_shader_create_2D(const char *frag, const char *defines);
 struct GPUShader *DRW_shader_create_3D(const char *frag, const char *defines);
 struct GPUShader *DRW_shader_create_fullscreen(const char *frag, const char *defines);
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index c9ba26824e..fa9090eddc 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -316,6 +316,11 @@ GPUShader *DRW_shader_create(const char *vert, const char *geom, const char *fra
 	return GPU_shader_create(vert, frag, geom, NULL, defines, 0, 0, 0);
 }
 
+GPUShader *DRW_shader_create_with_lib(const char *vert, const char *geom, const char *frag, const char *lib, const char *defines)
+{
+	return GPU_shader_create(vert, frag, geom, lib, defines, 0, 0, 0);
+}
+
 GPUShader *DRW_shader_create_2D(const char *frag, const char *defines)
 {
 	return GPU_shader_create(datatoc_gpu_shader_2D_vert_glsl, frag, NULL, NULL, defines, 0, 0, 0);
diff --git a/source/blender/draw/modes/edit_mesh_mode.c b/source/blender/draw/modes/edit_mesh_mode.c
index e1016c87c1..45d32d70bb 100644
--- a/source/blender/draw/modes/edit_mesh_mode.c
+++ b/source/blender/draw/modes/edit_mesh_mode.c
@@ -49,6 +49,7 @@ extern char datatoc_edit_overlay_facefill_vert_glsl[];
 extern char datatoc_edit_overlay_facefill_frag_glsl[];
 extern char datatoc_edit_normals_vert_glsl[];
 extern char datatoc_edit_normals_geom_glsl[];
+extern char datatoc_common_globals_lib_glsl[];
 
 extern char datatoc_gpu_shader_uniform_color_frag_glsl[];
 
@@ -138,58 +139,69 @@ static void EDIT_MESH_engine_init(void)
 	                     tex, 2);
 
 	if (!e_data.overlay_tri_sh) {
-		e_data.overlay_tri_sh = DRW_shader_create(datatoc_edit_overlay_vert_glsl,
-		                                   datatoc_edit_overlay_geom_tri_glsl,
-		                                   datatoc_edit_overlay_frag_glsl, "#define EDGE_FIX\n");
+		e_data.overlay_tri_sh = DRW_shader_create_with_lib(datatoc_edit_overlay_vert_glsl,
+		                                                   datatoc_edit_overlay_geom_tri_glsl,
+		                                                   datatoc_edit_overlay_frag_glsl,
+		                                                   datatoc_common_globals_lib_glsl, "#define EDGE_FIX\n");
 	}
 	if (!e_data.overlay_tri_fast_sh) {
-		e_data.overlay_tri_fast_sh = DRW_shader_create(datatoc_edit_overlay_vert_glsl,
-		                                       datatoc_edit_overlay_geom_tri_glsl,
-		                                       datatoc_edit_overlay_frag_glsl, NULL);
+		e_data.overlay_tri_fast_sh = DRW_shader_create_with_lib(datatoc_edit_overlay_vert_glsl,
+		                                                        datatoc_edit_overlay_geom_tri_glsl,
+		                                                        datatoc_edit_overlay_frag_glsl,
+		                                                        datatoc_common_globals_lib_glsl, NULL);
 	}
 	if (!e_data.overlay_tri_vcol_sh) {
-		e_data.overlay_tri_vcol_sh = DRW_shader_create(datatoc_edit_overlay_vert_glsl,
-		                                        datatoc_edit_overlay_geom_tri_glsl,
-		                                        datatoc_edit_overlay_frag_glsl, "#define EDGE_FIX\n"
-		                                                                        "#define VERTEX_SELECTION\n");
+		e_data.overlay_tri_vcol_sh = DRW_shader_create_with_lib(datatoc_edit_overlay_vert_glsl,
+		                                                        datatoc_edit_overlay_geom_tri_glsl,
+		                                                        datatoc_edit_overlay_frag_glsl,
+		                                                        datatoc_common_globals_lib_glsl, "#define EDGE_FIX\n"
+		                                                                                         "#define VERTEX_SELECTION\n");
 	}
 	if (!e_data.overlay_tri_vcol_fast_sh) {
-		e_data.overlay_tri_vcol_fast_sh = DRW_shader_create(datatoc_edit_overlay_vert_glsl,
-		                                             datatoc_edit_overlay_geom_tri_glsl,
-		                                             datatoc_edit_overlay_frag_glsl, "#define VERTEX_SELECTION\n");
+		e_data.overlay_tri_vcol_fast_sh = DRW_shader_create_with_lib(datatoc_edit_overlay_vert_glsl,
+		                                                             datatoc_edit_overlay_geom_tri_glsl,
+		                                                             datatoc_edit_overlay_frag_glsl,
+		                                                             datatoc_common_globals_lib_glsl, "#define VERTEX_SELECTION\n");
 	}
 	if (!e_data.overlay_edge_sh) {
-		e_data.overlay_edge_sh = DRW_shader_create(datatoc_edit_overlay_vert_glsl,
-		                                    datatoc_edit_overlay_geom_edge_glsl,
-		                                    datatoc_edit_overlay_frag_glsl, NULL);
+		e_data.overlay_edge_sh = DRW_shader_create_with_lib(datatoc_edit_overlay_vert_glsl,
+		                                                    datatoc_edit_overlay_geom_edge_glsl,
+		                                                    datatoc_edit_overlay_frag_glsl,
+		                                                    datatoc_common_globals_lib_glsl, NULL);
 	}
 	if (!e_data.overlay_edge_vcol_sh) {
-		e_data.overlay_edge_vcol_sh = DRW_shader_create(datatoc_edit_overlay_vert_glsl,
-		                                         datatoc_edit_overlay_geom_edge_glsl,
-		                                         datatoc_edit_overlay_frag_glsl, "#define VERTEX_SELECTION\n");
+		e_data.overlay_edge_vcol_sh = DRW_shader_create_with_lib(datatoc_edit_overlay_vert_glsl,
+		                                                         datatoc_edit_overlay_geom_edge_glsl,
+		                                                         datatoc_edit_overlay_frag_glsl,
+		                                                         datatoc_common_globals_lib_glsl, "#define VERTEX_SELECTION\n");
 	}
 	if (!e_data.overlay_vert_sh) {
-		e_data.overlay_vert_sh = DRW_shader_create(datatoc_edit_overlay_loosevert_vert_glsl, NULL,
-		                                    datatoc_edit_overlay_frag_glsl, "#define VERTEX_SELECTION\n");
+		e_data.overlay_vert_sh = DRW_shader_create_with_lib(datatoc_edit_overlay_loosevert_vert_glsl, NULL,
+		                                                    datatoc_edit_overlay_frag_glsl,
+		                                                    datatoc_common_globals_lib_glsl, "#define VERTEX_SELECTION\n");
 	}
 	if (!e_data.overlay_facedot_sh) {
-		e_data.overlay_facedot_sh = DRW_shader_create(datatoc_edit_overlay_facedot_vert_glsl, NULL,
-		                                       datatoc_edit_overlay_facedot_frag_glsl, NULL);
+		e_data.overlay_facedot_sh = DRW_shader_create_with_lib(datatoc_edit_overlay_facedot_vert_glsl, NULL,
+		                                                       datatoc_edit_overlay_facedot_frag_glsl,
+		                                                       datatoc_common_globals_lib_glsl, NULL);
 	}
 	if (!e_data.overlay_mix_sh) {
 		e_data.overlay_mix_sh = DRW_shader_create_fullscreen(datatoc_edit_overlay_mix_frag_glsl, NULL);
 	}
 	if (!e_data.overlay_facefill_sh) {
-		e_data.overlay_facefill_sh = DRW_shader_create(datatoc_edit_overlay_facefill_vert_glsl, NULL,
-		                                        datatoc_edit_overlay_facefill_frag_glsl, NULL);
+		e_data.overlay_facefill_sh = DRW_shader_create_with_lib(datatoc_edit_overlay_facefill_vert_glsl, NULL,
+		                                                        datatoc_edit_overlay_facefill_frag_glsl,
+		                                                        datatoc_common_globals_lib_glsl, NULL);
 	}
 	if (!e_data.normals_face_sh) {
-		e_data.normals_face_sh = DRW_shader_create(datatoc_edit_normals_vert_glsl, datatoc_edit_normals_geom_glsl,
-		                                    datatoc_gpu_shader_uniform_color_frag_glsl, "#define FACE_NORMALS\n");
+		e_data.normals_face_sh = DRW_shader_create(datatoc_edit_normals_vert_glsl,
+		                                           datatoc_edit_normals_geom_glsl,
+		                                           datatoc_gpu_shader_uniform_color_frag_glsl, "#define FACE_NORMALS\n");
 	}
 	if (!e_data.normals_sh) {
-		e_data.normals_sh = DRW_shader_create(datatoc_edit_normals_vert_glsl, datatoc_edit_normals_geom_glsl,
-		                                    datatoc_gpu_shader_uniform_color_frag_glsl, NULL);
+		e_data.normals_sh = DRW_shader_create(datatoc_edit_normals_vert_glsl,
+		                                      datatoc_edit_normals_geom_glsl,
+		                                      datatoc_gpu_shader_uniform_color_frag_glsl, NULL);
 	}
 	if (!e_data.depth_sh) {
 		e_data.depth_sh = DRW_shader_create_3D_depth_only();
diff --git a/source/blender/draw/modes/shaders/edit_overlay_fa

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list