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-05 00:24:34 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-12-05 00:32:17 +0300
commit4705aa4fe518ce33a9dff59a3ae1707ff28bdd08 (patch)
tree1d5100358f2e61316e7ecd03478e89bb0c64ddb4 /source/blender/draw/engines/overlay/overlay_shader.c
parenta77fe7eb5c34d859cc18fc942a1167116b7a8c9e (diff)
Overlay Engine: LightProbe: Simplify drawing of irradiance grid data
This separates it from the outline pass and fix a visibility bug when extras were off.
Diffstat (limited to 'source/blender/draw/engines/overlay/overlay_shader.c')
-rw-r--r--source/blender/draw/engines/overlay/overlay_shader.c44
1 files changed, 22 insertions, 22 deletions
diff --git a/source/blender/draw/engines/overlay/overlay_shader.c b/source/blender/draw/engines/overlay/overlay_shader.c
index 5e97ddacbb0..be55d6c07c7 100644
--- a/source/blender/draw/engines/overlay/overlay_shader.c
+++ b/source/blender/draw/engines/overlay/overlay_shader.c
@@ -65,6 +65,7 @@ extern char datatoc_edit_particle_point_vert_glsl[];
extern char datatoc_extra_frag_glsl[];
extern char datatoc_extra_vert_glsl[];
extern char datatoc_extra_groundline_vert_glsl[];
+extern char datatoc_extra_lightprobe_grid_vert_glsl[];
extern char datatoc_extra_loose_point_vert_glsl[];
extern char datatoc_extra_loose_point_frag_glsl[];
extern char datatoc_extra_point_vert_glsl[];
@@ -83,7 +84,6 @@ extern char datatoc_outline_detect_frag_glsl[];
extern char datatoc_outline_prepass_frag_glsl[];
extern char datatoc_outline_prepass_geom_glsl[];
extern char datatoc_outline_prepass_vert_glsl[];
-extern char datatoc_outline_lightprobe_grid_vert_glsl[];
extern char datatoc_paint_face_vert_glsl[];
extern char datatoc_paint_point_vert_glsl[];
extern char datatoc_paint_texture_frag_glsl[];
@@ -148,6 +148,7 @@ typedef struct OVERLAY_Shaders {
GPUShader *extra_groundline;
GPUShader *extra_wire[2];
GPUShader *extra_point;
+ GPUShader *extra_lightprobe_grid;
GPUShader *extra_loose_point;
GPUShader *facing;
GPUShader *grid;
@@ -156,7 +157,6 @@ typedef struct OVERLAY_Shaders {
GPUShader *motion_path_vert;
GPUShader *outline_prepass;
GPUShader *outline_prepass_wire;
- GPUShader *outline_prepass_lightprobe_grid;
GPUShader *outline_detect;
GPUShader *paint_face;
GPUShader *paint_point;
@@ -688,6 +688,26 @@ GPUShader *OVERLAY_shader_extra(void)
return sh_data->extra;
}
+GPUShader *OVERLAY_shader_extra_grid(void)
+{
+ const DRWContextState *draw_ctx = DRW_context_state_get();
+ const GPUShaderConfigData *sh_cfg = &GPU_shader_cfg_data[draw_ctx->sh_cfg];
+ OVERLAY_Shaders *sh_data = &e_data.sh_data[draw_ctx->sh_cfg];
+ if (!sh_data->extra_lightprobe_grid) {
+ sh_data->extra_lightprobe_grid = 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_extra_lightprobe_grid_vert_glsl,
+ NULL},
+ .frag = (const char *[]){datatoc_gpu_shader_point_varying_color_frag_glsl, NULL},
+ .defs = (const char *[]){sh_cfg->def, NULL},
+ });
+ }
+ return sh_data->extra_lightprobe_grid;
+}
+
GPUShader *OVERLAY_shader_extra_groundline(void)
{
const DRWContextState *draw_ctx = DRW_context_state_get();
@@ -918,26 +938,6 @@ GPUShader *OVERLAY_shader_outline_prepass(bool use_wire)
return use_wire ? sh_data->outline_prepass_wire : sh_data->outline_prepass;
}
-GPUShader *OVERLAY_shader_outline_prepass_grid(void)
-{
- const DRWContextState *draw_ctx = DRW_context_state_get();
- const GPUShaderConfigData *sh_cfg = &GPU_shader_cfg_data[draw_ctx->sh_cfg];
- OVERLAY_Shaders *sh_data = &e_data.sh_data[draw_ctx->sh_cfg];
- if (!sh_data->outline_prepass_lightprobe_grid) {
- sh_data->outline_prepass_lightprobe_grid = 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_outline_lightprobe_grid_vert_glsl,
- NULL},
- .frag = (const char *[]){datatoc_outline_prepass_frag_glsl, NULL},
- .defs = (const char *[]){sh_cfg->def, NULL},
- });
- }
- return sh_data->outline_prepass_lightprobe_grid;
-}
-
GPUShader *OVERLAY_shader_outline_detect(void)
{
OVERLAY_Shaders *sh_data = &e_data.sh_data[0];