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>2019-04-04 14:47:18 +0300
committerJeroen Bakker <j.bakker@atmind.nl>2019-04-04 20:02:11 +0300
commit59d0582a750cf61c98368dc66277e788dcf6f502 (patch)
tree17656265f40a8929295cb35065a631e3d141c5cd /source/blender/draw
parentb26164ded5e9804f233dc72407080939c960f9a1 (diff)
Workbench: Support Transparency + Textures
When texture drawing was enabled the fallback materials were not transparent. The reason was that the solid material was requested. This patch will requesting in this case the material from the forward renderer. Fix: T63077 Reviewed By: fclem Maniphest Tasks: T63077 Differential Revision: https://developer.blender.org/D4641
Diffstat (limited to 'source/blender/draw')
-rw-r--r--source/blender/draw/engines/workbench/workbench_deferred.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/draw/engines/workbench/workbench_deferred.c b/source/blender/draw/engines/workbench/workbench_deferred.c
index 8ea90a21e78..45fa7c8c453 100644
--- a/source/blender/draw/engines/workbench/workbench_deferred.c
+++ b/source/blender/draw/engines/workbench/workbench_deferred.c
@@ -921,7 +921,13 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob)
int interp;
workbench_material_get_image_and_mat(ob, i + 1, &image, &iuser, &interp, &mat);
int color_type = workbench_material_determine_color_type(wpd, image, ob);
- material = get_or_create_material_data(vedata, ob, mat, image, iuser, color_type, interp);
+ if (color_type == V3D_SHADING_MATERIAL_COLOR && mat->a < 1.0) {
+ material = workbench_forward_get_or_create_material_data(vedata, ob, mat, image, iuser, color_type, 0);
+ has_transp_mat = true;
+ }
+ else {
+ material = get_or_create_material_data(vedata, ob, mat, image, iuser, color_type, interp);
+ }
DRW_shgroup_call_object_add(material->shgrp, geom_array[i], ob);
}
}