[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