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:
authorJeroen Bakker <j.bakker@atmind.nl>2018-05-22 15:12:47 +0300
committerJeroen Bakker <j.bakker@atmind.nl>2018-05-22 15:55:50 +0300
commitdfe088c5d9c819e7266e8e88fb31e92ac2ee8592 (patch)
tree893d823c1957624257c3ef128422c3fa132e9049 /source/blender/draw/intern/draw_manager.c
parentff19b527e85ec5144efbd663bf9b4c338e179358 (diff)
Workbench: SeeThrough draw option
Option to see through all meshes (transparency) Works for OB_SOLID and OB_TEXTURED. Does not work for V3D_SHADING_SHADOW. TODO: Fresnel effect
Diffstat (limited to 'source/blender/draw/intern/draw_manager.c')
-rw-r--r--source/blender/draw/intern/draw_manager.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index 95256a2b1c8..c91c4536fa4 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1015,7 +1015,7 @@ static void drw_engines_enable_external(void)
/* TODO revisit this when proper layering is implemented */
/* Gather all draw engines needed and store them in DST.enabled_engines
* That also define the rendering order of engines */
-static void drw_engines_enable_from_engine(RenderEngineType *engine_type, int drawtype)
+static void drw_engines_enable_from_engine(RenderEngineType *engine_type, int drawtype, int shading_flags)
{
switch (drawtype) {
case OB_WIRE:
@@ -1023,7 +1023,12 @@ static void drw_engines_enable_from_engine(RenderEngineType *engine_type, int dr
case OB_SOLID:
case OB_TEXTURE:
- use_drw_engine(&draw_engine_workbench_solid);
+ if (shading_flags & V3D_SHADING_SEE_THROUGH) {
+ use_drw_engine(&draw_engine_workbench_transparent);
+ }
+ else {
+ use_drw_engine(&draw_engine_workbench_solid);
+ }
break;
case OB_MATERIAL:
@@ -1118,7 +1123,7 @@ static void drw_engines_enable(ViewLayer *view_layer, RenderEngineType *engine_t
View3D * v3d = DST.draw_ctx.v3d;
const int drawtype = v3d->drawtype;
- drw_engines_enable_from_engine(engine_type, drawtype);
+ drw_engines_enable_from_engine(engine_type, drawtype, v3d->shading.flag);
if (DRW_state_draw_support()) {
drw_engines_enable_from_overlays(v3d->overlay.flag);