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:
authorCampbell Barton <ideasman42@gmail.com>2019-05-30 13:02:05 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-05-30 13:02:05 +0300
commit671827549a3d013a2037e0b9814708214c59271c (patch)
tree7f15acb0cfbc4a5ad6b49cd072d9c7564f8df95b /source/blender/draw/intern/draw_common.c
parent8cc1154aa257f1cc7fe6c5e0d139cdc0afd6b604 (diff)
3D View: Support light probe data clipping
Diffstat (limited to 'source/blender/draw/intern/draw_common.c')
-rw-r--r--source/blender/draw/intern/draw_common.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/source/blender/draw/intern/draw_common.c b/source/blender/draw/intern/draw_common.c
index de860607a2e..a2a3ea61a1e 100644
--- a/source/blender/draw/intern/draw_common.c
+++ b/source/blender/draw/intern/draw_common.c
@@ -549,10 +549,13 @@ struct DRWCallBuffer *buffer_instance_empty_axes(DRWPass *pass,
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_sized, geom);
}
-struct DRWCallBuffer *buffer_instance_outline(DRWPass *pass, struct GPUBatch *geom, int *baseid)
+struct DRWCallBuffer *buffer_instance_outline(DRWPass *pass,
+ struct GPUBatch *geom,
+ int *baseid,
+ eGPUShaderConfig sh_cfg)
{
- GPUShader *sh_inst = GPU_shader_get_builtin_shader(
- GPU_SHADER_INSTANCE_VARIYING_ID_VARIYING_SIZE);
+ GPUShader *sh_inst = GPU_shader_get_builtin_shader_with_config(
+ GPU_SHADER_INSTANCE_VARIYING_ID_VARIYING_SIZE, sh_cfg);
DRW_shgroup_instance_format(g_formats.instance_outline,
{
@@ -564,6 +567,9 @@ struct DRWCallBuffer *buffer_instance_outline(DRWPass *pass, struct GPUBatch *ge
DRWShadingGroup *grp = DRW_shgroup_create(sh_inst, pass);
DRW_shgroup_uniform_int(grp, "baseId", baseid, 1);
+ if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
+ DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES);
+ }
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_outline, geom);
}