[Bf-blender-cvs] [632e0725d27] master: Overlays: Use common_view_lib.glsl

Clément Foucault noreply at git.blender.org
Fri May 10 12:25:47 CEST 2019


Commit: 632e0725d27271f95073f668a24bcf06f603f001
Author: Clément Foucault
Date:   Fri May 10 01:57:42 2019 +0200
Branches: master
https://developer.blender.org/rB632e0725d27271f95073f668a24bcf06f603f001

Overlays: Use common_view_lib.glsl

This removes ModelViewProjectionMatrix usage

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

M	source/blender/draw/intern/draw_common.c
M	source/blender/draw/modes/edit_curve_mode.c
M	source/blender/draw/modes/edit_lattice_mode.c
M	source/blender/draw/modes/edit_mesh_mode.c
M	source/blender/draw/modes/object_mode.c
M	source/blender/draw/modes/overlay_mode.c
M	source/blender/draw/modes/paint_texture_mode.c
M	source/blender/draw/modes/paint_vertex_mode.c
M	source/blender/draw/modes/particle_mode.c
M	source/blender/draw/modes/sculpt_mode.c
M	source/blender/draw/modes/shaders/edit_curve_overlay_handle_vert.glsl
M	source/blender/draw/modes/shaders/edit_curve_overlay_loosevert_vert.glsl
M	source/blender/draw/modes/shaders/edit_curve_overlay_normals_vert.glsl
M	source/blender/draw/modes/shaders/edit_lattice_overlay_loosevert_vert.glsl
M	source/blender/draw/modes/shaders/edit_mesh_overlay_facefill_vert.glsl
M	source/blender/draw/modes/shaders/edit_mesh_overlay_mesh_analysis_vert.glsl
M	source/blender/draw/modes/shaders/edit_normals_vert.glsl
M	source/blender/draw/modes/shaders/object_empty_image_vert.glsl
M	source/blender/draw/modes/shaders/object_outline_prepass_vert.glsl
M	source/blender/draw/modes/shaders/overlay_face_orientation_vert.glsl
M	source/blender/draw/modes/shaders/paint_face_vert.glsl
M	source/blender/draw/modes/shaders/paint_texture_vert.glsl
M	source/blender/draw/modes/shaders/paint_vertex_vert.glsl
M	source/blender/draw/modes/shaders/paint_weight_vert.glsl
M	source/blender/draw/modes/shaders/paint_wire_vert.glsl
M	source/blender/draw/modes/shaders/particle_strand_frag.glsl
M	source/blender/draw/modes/shaders/particle_strand_vert.glsl
M	source/blender/draw/modes/shaders/sculpt_mask_vert.glsl
M	source/blender/draw/modes/shaders/volume_velocity_vert.glsl

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

diff --git a/source/blender/draw/intern/draw_common.c b/source/blender/draw/intern/draw_common.c
index 76fca6fc72d..9abc7ec6c6e 100644
--- a/source/blender/draw/intern/draw_common.c
+++ b/source/blender/draw/intern/draw_common.c
@@ -1038,18 +1038,23 @@ struct GPUShader *volume_velocity_shader_get(bool use_needle)
   COMMON_Shaders *sh_data = &g_shaders[GPU_SHADER_CFG_DEFAULT];
   if (use_needle) {
     if (sh_data->volume_velocity_needle_sh == NULL) {
-      sh_data->volume_velocity_needle_sh = DRW_shader_create(
+      sh_data->volume_velocity_needle_sh = DRW_shader_create_with_lib(
           datatoc_volume_velocity_vert_glsl,
           NULL,
           datatoc_gpu_shader_flat_color_frag_glsl,
+          datatoc_common_view_lib_glsl,
           "#define USE_NEEDLE");
     }
     return sh_data->volume_velocity_needle_sh;
   }
   else {
     if (sh_data->volume_velocity_sh == NULL) {
-      sh_data->volume_velocity_sh = DRW_shader_create(
-          datatoc_volume_velocity_vert_glsl, NULL, datatoc_gpu_shader_flat_color_frag_glsl, NULL);
+      sh_data->volume_velocity_sh = DRW_shader_create_with_lib(
+          datatoc_volume_velocity_vert_glsl,
+          NULL,
+          datatoc_gpu_shader_flat_color_frag_glsl,
+          datatoc_common_view_lib_glsl,
+          NULL);
     }
     return sh_data->volume_velocity_sh;
   }
diff --git a/source/blender/draw/modes/edit_curve_mode.c b/source/blender/draw/modes/edit_curve_mode.c
index e47393c88c4..f1aa4d20a7e 100644
--- a/source/blender/draw/modes/edit_curve_mode.c
+++ b/source/blender/draw/modes/edit_curve_mode.c
@@ -39,6 +39,7 @@
  * Not needed for constant color. */
 
 extern char datatoc_common_globals_lib_glsl[];
+extern char datatoc_common_view_lib_glsl[];
 extern char datatoc_edit_curve_overlay_loosevert_vert_glsl[];
 extern char datatoc_edit_curve_overlay_normals_vert_glsl[];
 extern char datatoc_edit_curve_overlay_handle_vert_glsl[];
@@ -124,8 +125,10 @@ static void EDIT_CURVE_engine_init(void *UNUSED(vedata))
 
   if (!sh_data->wire_normals_sh) {
     sh_data->wire_normals_sh = GPU_shader_create_from_arrays({
-        .vert =
-            (const char *[]){sh_cfg_data->lib, datatoc_edit_curve_overlay_normals_vert_glsl, NULL},
+        .vert = (const char *[]){sh_cfg_data->lib,
+                                 datatoc_common_view_lib_glsl,
+                                 datatoc_edit_curve_overlay_normals_vert_glsl,
+                                 NULL},
         .frag = (const char *[]){datatoc_gpu_shader_uniform_color_frag_glsl, NULL},
         .defs = (const char *[]){sh_cfg_data->def, NULL},
     });
@@ -133,8 +136,10 @@ static void EDIT_CURVE_engine_init(void *UNUSED(vedata))
 
   if (!sh_data->overlay_edge_sh) {
     sh_data->overlay_edge_sh = GPU_shader_create_from_arrays({
-        .vert =
-            (const char *[]){sh_cfg_data->lib, datatoc_edit_curve_overlay_handle_vert_glsl, NULL},
+        .vert = (const char *[]){sh_cfg_data->lib,
+                                 datatoc_common_view_lib_glsl,
+                                 datatoc_edit_curve_overlay_handle_vert_glsl,
+                                 NULL},
         .geom = (const char *[]){sh_cfg_data->lib,
                                  datatoc_common_globals_lib_glsl,
                                  datatoc_edit_curve_overlay_handle_geom_glsl,
@@ -148,6 +153,7 @@ static void EDIT_CURVE_engine_init(void *UNUSED(vedata))
     sh_data->overlay_vert_sh = GPU_shader_create_from_arrays({
         .vert = (const char *[]){sh_cfg_data->lib,
                                  datatoc_common_globals_lib_glsl,
+                                 datatoc_common_view_lib_glsl,
                                  datatoc_edit_curve_overlay_loosevert_vert_glsl,
                                  NULL},
         .frag = (const char *[]){datatoc_gpu_shader_point_varying_color_frag_glsl, NULL},
diff --git a/source/blender/draw/modes/edit_lattice_mode.c b/source/blender/draw/modes/edit_lattice_mode.c
index 273480b8127..52893e5f54d 100644
--- a/source/blender/draw/modes/edit_lattice_mode.c
+++ b/source/blender/draw/modes/edit_lattice_mode.c
@@ -32,6 +32,7 @@
 #include "draw_mode_engines.h"
 
 extern char datatoc_common_globals_lib_glsl[];
+extern char datatoc_common_view_lib_glsl[];
 
 extern char datatoc_edit_lattice_overlay_loosevert_vert_glsl[];
 extern char datatoc_edit_lattice_overlay_frag_glsl[];
@@ -152,6 +153,7 @@ static void EDIT_LATTICE_engine_init(void *vedata)
     sh_data->overlay_vert = GPU_shader_create_from_arrays({
         .vert = (const char *[]){sh_cfg_data->lib,
                                  datatoc_common_globals_lib_glsl,
+                                 datatoc_common_view_lib_glsl,
                                  datatoc_edit_lattice_overlay_loosevert_vert_glsl,
                                  NULL},
         .frag = (const char *[]){datatoc_common_globals_lib_glsl,
diff --git a/source/blender/draw/modes/edit_mesh_mode.c b/source/blender/draw/modes/edit_mesh_mode.c
index 655b0428743..c68a3cb604d 100644
--- a/source/blender/draw/modes/edit_mesh_mode.c
+++ b/source/blender/draw/modes/edit_mesh_mode.c
@@ -198,6 +198,7 @@ static void EDIT_MESH_engine_init(void *vedata)
     sh_data->weight_face = GPU_shader_create_from_arrays({
         .vert = (const char *[]){sh_cfg_data->lib,
                                  datatoc_common_globals_lib_glsl,
+                                 datatoc_common_view_lib_glsl,
                                  datatoc_paint_weight_vert_glsl,
                                  NULL},
         .frag = (const char *[]){datatoc_common_globals_lib_glsl,
@@ -290,24 +291,20 @@ static void EDIT_MESH_engine_init(void *vedata)
         .defs = (const char *[]){sh_cfg_data->def, NULL},
     });
 
-    MEM_freeN(lib);
-
     /* Mesh Analysis */
     sh_data->mesh_analysis_face = GPU_shader_create_from_arrays({
-        .vert = (const char *[]){sh_cfg_data->lib,
-                                 datatoc_edit_mesh_overlay_mesh_analysis_vert_glsl,
-                                 NULL},
+        .vert = (const char *[]){lib, datatoc_edit_mesh_overlay_mesh_analysis_vert_glsl, NULL},
         .frag = (const char *[]){datatoc_edit_mesh_overlay_mesh_analysis_frag_glsl, NULL},
         .defs = (const char *[]){sh_cfg_data->def, "#define FACE_COLOR\n", NULL},
     });
     sh_data->mesh_analysis_vertex = GPU_shader_create_from_arrays({
-        .vert = (const char *[]){sh_cfg_data->lib,
-                                 datatoc_edit_mesh_overlay_mesh_analysis_vert_glsl,
-                                 NULL},
+        .vert = (const char *[]){lib, datatoc_edit_mesh_overlay_mesh_analysis_vert_glsl, NULL},
         .frag = (const char *[]){datatoc_edit_mesh_overlay_mesh_analysis_frag_glsl, NULL},
         .defs = (const char *[]){sh_cfg_data->def, "#define VERTEX_COLOR\n", NULL},
     });
 
+    MEM_freeN(lib);
+
     sh_data->depth = DRW_shader_create_3d_depth_only(draw_ctx->sh_cfg);
   }
 }
diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c
index 7e5586f1b10..cc313620a11 100644
--- a/source/blender/draw/modes/object_mode.c
+++ b/source/blender/draw/modes/object_mode.c
@@ -468,12 +468,18 @@ static void OBJECT_engine_init(void *vedata)
               "#define DEPTH_BACK " STRINGIFY(OB_EMPTY_IMAGE_DEPTH_BACK) "\n");
 
       sh_data->object_empty_image = GPU_shader_create_from_arrays({
-          .vert = (const char *[]){sh_cfg_data->lib, datatoc_object_empty_image_vert_glsl, NULL},
+          .vert = (const char *[]){sh_cfg_data->lib,
+                                   datatoc_common_view_lib_glsl,
+                                   datatoc_object_empty_image_vert_glsl,
+                                   NULL},
           .frag = (const char *[]){datatoc_object_empty_image_frag_glsl, NULL},
           .defs = (const char *[]){sh_cfg_data->def, empty_image_defs, NULL},
       });
       sh_data->object_empty_image_wire = GPU_shader_create_from_arrays({
-          .vert = (const char *[]){sh_cfg_data->lib, datatoc_object_empty_image_vert_glsl, NULL},
+          .vert = (const char *[]){sh_cfg_data->lib,
+                                   datatoc_common_view_lib_glsl,
+                                   datatoc_object_empty_image_vert_glsl,
+                                   NULL},
           .frag = (const char *[]){datatoc_object_empty_image_frag_glsl, NULL},
           .defs = (const char *[]){sh_cfg_data->def, "#define USE_WIRE\n", empty_image_defs, NULL},
       });
diff --git a/source/blender/draw/modes/overlay_mode.c b/source/blender/draw/modes/overlay_mode.c
index 99ab842b3bf..ceb114673d0 100644
--- a/source/blender/draw/modes/overlay_mode.c
+++ b/source/blender/draw/modes/overlay_mode.c
@@ -126,8 +126,10 @@ static void overlay_engine_init(void *vedata)
   if (!sh_data->face_orientation) {
     /* Face orientation */
     sh_data->face_orientation = GPU_shader_create_from_arrays({
-        .vert =
-            (const char *[]){sh_cfg_data->lib, datatoc_overlay_face_orientation_vert_glsl, NULL},
+        .vert = (const char *[]){sh_cfg_data->lib,
+                                 datatoc_common_view_lib_glsl,
+                                 datatoc_overlay_face_orientation_vert_glsl,
+                                 NULL},
         .frag = (const char *[]){datatoc_overlay_face_orientation_frag_glsl, NULL},
         .defs = (const char *[]){sh_cfg_data->def, NULL},
     });
diff --git a/source/blender/draw/modes/paint_texture_mode.c b/source/blender/draw/modes/paint_texture_mode.c
index 3e292f4e4bc..123dc7fca88 100644
--- a/source/blender/draw/modes/paint_texture_mode.c
+++ b/source/blender/draw/modes/paint_texture_mode.c
@@ -27,6 +27,8 @@
 
 #include "BKE_node.h"
 
+#include "BLI_string_utils.h"
+
 /* If builtin shaders are needed */
 #include "GPU_shader.h"
 #include "GPU_texture.h"
@@ -39,6 +41,7 @@
 #include "DEG_depsgraph_query.h"
 
 extern char datatoc_common_globals_lib_glsl[];
+extern char datatoc_common_view_lib_glsl[];
 extern char datatoc_paint_texture_vert_glsl[];
 extern char datatoc_paint_texture_frag_glsl[];
 extern char datatoc_paint_wire_vert_glsl[];
@@ -132,26 +135,31 @@ static void PAINT_TEXTURE_engine_init(void *UNUSED(v

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list