Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2019-12-02 15:55:30 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-12-02 16:35:49 +0300
commit3e241af3aec2bf03b0b558ca419ceb08d394a239 (patch)
tree1e956b6fee464a62b8af253614bf834688bc96ed /source/blender/draw/engines/overlay/overlay_shader.c
parent0f521ca4d9622247a740312e3e318a35c1d85aa9 (diff)
Overlay Engine: Wireframe: Remove geometry shader and fragment discard
This Simplify and should also speedup the drawing a tiny bit. We now discard the edges in the vertex shader by setting one of the verts at vec4(0,0,0,0) to not produce any fragment
Diffstat (limited to 'source/blender/draw/engines/overlay/overlay_shader.c')
-rw-r--r--source/blender/draw/engines/overlay/overlay_shader.c30
1 files changed, 8 insertions, 22 deletions
diff --git a/source/blender/draw/engines/overlay/overlay_shader.c b/source/blender/draw/engines/overlay/overlay_shader.c
index fa495d153e9..bf58f763746 100644
--- a/source/blender/draw/engines/overlay/overlay_shader.c
+++ b/source/blender/draw/engines/overlay/overlay_shader.c
@@ -100,7 +100,6 @@ extern char datatoc_particle_frag_glsl[];
extern char datatoc_sculpt_mask_vert_glsl[];
extern char datatoc_volume_velocity_vert_glsl[];
extern char datatoc_wireframe_vert_glsl[];
-extern char datatoc_wireframe_geom_glsl[];
extern char datatoc_wireframe_frag_glsl[];
extern char datatoc_gpu_shader_depth_only_frag_glsl[];
@@ -1216,10 +1215,6 @@ GPUShader *OVERLAY_shader_wireframe_select(void)
datatoc_gpu_shader_common_obinfos_lib_glsl,
datatoc_wireframe_vert_glsl,
NULL},
- .geom = (const char *[]){sh_cfg->lib,
- datatoc_common_globals_lib_glsl,
- datatoc_wireframe_geom_glsl,
- NULL},
.frag = (const char *[]){datatoc_gpu_shader_depth_only_frag_glsl, NULL},
.defs = (const char *[]){sh_cfg->def, "#define SELECT_EDGES\n", NULL},
});
@@ -1234,23 +1229,14 @@ GPUShader *OVERLAY_shader_wireframe(void)
OVERLAY_Shaders *sh_data = &e_data.sh_data[draw_ctx->sh_cfg];
if (!sh_data->wireframe) {
sh_data->wireframe = GPU_shader_create_from_arrays({
- .vert = (const char *[]){sh_cfg->lib,
- datatoc_common_view_lib_glsl,
- datatoc_common_globals_lib_glsl,
- datatoc_gpu_shader_common_obinfos_lib_glsl,
- datatoc_wireframe_vert_glsl,
- NULL},
- .frag = (const char *[]){datatoc_common_view_lib_glsl, datatoc_wireframe_frag_glsl, NULL},
- /* Apple drivers does not support wide wires. Use geometry shader as a workaround. */
-#if USE_GEOM_SHADER_WORKAROUND
- .geom = (const char *[]){sh_cfg->lib,
- datatoc_common_globals_lib_glsl,
- datatoc_wireframe_geom_glsl,
- NULL},
- .defs = (const char *[]){sh_cfg->def, "#define USE_GEOM\n", NULL},
-#else
- .defs = (const char *[]){sh_cfg->def, NULL},
-#endif
+ .vert = (const char *[]){sh_cfg->lib,
+ datatoc_common_view_lib_glsl,
+ datatoc_common_globals_lib_glsl,
+ datatoc_gpu_shader_common_obinfos_lib_glsl,
+ datatoc_wireframe_vert_glsl,
+ NULL},
+ .frag = (const char *[]){datatoc_common_view_lib_glsl, datatoc_wireframe_frag_glsl, NULL},
+ .defs = (const char *[]){sh_cfg->def, NULL},
});
}
return sh_data->wireframe;