From 8996e26116f063ce28a9784899fc36d87f31dabe Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 6 Feb 2019 10:33:14 +1100 Subject: Fix T61196: Mesh select ignores clipping Select clipping now works when x-ray is disabled. --- source/blender/gpu/intern/gpu_batch.c | 15 +++++++++++++-- source/blender/gpu/intern/gpu_shader.c | 4 +++- 2 files changed, 16 insertions(+), 3 deletions(-) (limited to 'source/blender/gpu/intern') diff --git a/source/blender/gpu/intern/gpu_batch.c b/source/blender/gpu/intern/gpu_batch.c index 66b17fa9704..a095f85d883 100644 --- a/source/blender/gpu/intern/gpu_batch.c +++ b/source/blender/gpu/intern/gpu_batch.c @@ -664,12 +664,23 @@ void GPU_draw_primitive(GPUPrimType prim_type, int v_count) /** \name Utilities * \{ */ -void GPU_batch_program_set_builtin(GPUBatch *batch, eGPUBuiltinShader shader_id) +void GPU_batch_program_set_shader(GPUBatch *batch, GPUShader *shader) +{ + GPU_batch_program_set(batch, shader->program, shader->interface); +} + +void GPU_batch_program_set_builtin_with_config( + GPUBatch *batch, eGPUBuiltinShader shader_id, eGPUShaderConfig shader_cfg) { - GPUShader *shader = GPU_shader_get_builtin_shader(shader_id); + GPUShader *shader = GPU_shader_get_builtin_shader_with_config(shader_id, shader_cfg); GPU_batch_program_set(batch, shader->program, shader->interface); } +void GPU_batch_program_set_builtin(GPUBatch *batch, eGPUBuiltinShader shader_id) +{ + GPU_batch_program_set_builtin_with_config(batch, shader_id, GPU_SHADER_CFG_DEFAULT); +} + /** \} */ /* -------------------------------------------------------------------- */ diff --git a/source/blender/gpu/intern/gpu_shader.c b/source/blender/gpu/intern/gpu_shader.c index 99f4df29418..2236ea33842 100644 --- a/source/blender/gpu/intern/gpu_shader.c +++ b/source/blender/gpu/intern/gpu_shader.c @@ -1219,7 +1219,9 @@ GPUShader *GPU_shader_get_builtin_shader_with_config( GPU_SHADER_3D_GROUNDLINE, GPU_SHADER_3D_GROUNDPOINT, GPU_SHADER_DISTANCE_LINES, - GPU_SHADER_INSTANCE_EDGES_VARIYING_COLOR)); + GPU_SHADER_INSTANCE_EDGES_VARIYING_COLOR, + GPU_SHADER_3D_FLAT_SELECT_ID, + GPU_SHADER_3D_UNIFORM_SELECT_ID)); const char *world_clip_lib = datatoc_gpu_shader_cfg_world_clip_lib_glsl; const char *world_clip_def = "#define USE_WORLD_CLIP_PLANES\n"; /* In rare cases geometry shaders calculate clipping themselves. */ -- cgit v1.2.3