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-01-24 07:02:40 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-01-24 08:14:00 +0300
commit04d18b117c2f95b0b28df12c9ddac06b018d6236 (patch)
tree2c2975e479dc40083c664e48f26d683b61010846 /source/blender/draw/modes/edit_lattice_mode.c
parent1d908bffddb4c9815a986305ad4588032b81deee (diff)
DRW: API for own versions of builtin GPU shaders
DRW_shader_get_builtin_shader can replace GPU_shader_get_builtin_shader when we need to support clipping. Use this for loose point & wire drawing in object mode, clips edges in lattice edit mode.
Diffstat (limited to 'source/blender/draw/modes/edit_lattice_mode.c')
-rw-r--r--source/blender/draw/modes/edit_lattice_mode.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/draw/modes/edit_lattice_mode.c b/source/blender/draw/modes/edit_lattice_mode.c
index c98a68f13b2..e484b359b9e 100644
--- a/source/blender/draw/modes/edit_lattice_mode.c
+++ b/source/blender/draw/modes/edit_lattice_mode.c
@@ -37,6 +37,7 @@
#include "draw_common.h"
#include "draw_mode_engines.h"
+#include "draw_builtin_shader.h"
extern char datatoc_common_world_clip_lib_glsl[];
extern char datatoc_common_globals_lib_glsl[];
@@ -154,7 +155,7 @@ static void EDIT_LATTICE_engine_init(void *vedata)
const char *world_clip_def_or_empty = is_clip ? "#define USE_WORLD_CLIP_PLANES\n" : "";
if (!sh_data->wire) {
- sh_data->wire = GPU_shader_get_builtin_shader(GPU_SHADER_3D_SMOOTH_COLOR);
+ sh_data->wire = DRW_shader_get_builtin_shader(GPU_SHADER_3D_SMOOTH_COLOR, draw_ctx->shader_slot);
}
if (!sh_data->overlay_vert) {
@@ -194,6 +195,9 @@ static void EDIT_LATTICE_cache_init(void *vedata)
"Lattice Wire",
DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS_EQUAL | DRW_STATE_WIRE);
stl->g_data->wire_shgrp = DRW_shgroup_create(sh_data->wire, psl->wire_pass);
+ if (rv3d->rflag & RV3D_CLIPPING) {
+ DRW_shgroup_world_clip_planes_from_rv3d(stl->g_data->wire_shgrp, rv3d);
+ }
psl->vert_pass = DRW_pass_create(
"Lattice Verts",