[Bf-blender-cvs] [655faca1058] master: Fix: Workbench assert on non-image texture node

Dalai Felinto noreply at git.blender.org
Fri Feb 22 22:01:53 CET 2019


Commit: 655faca105863eafd1080d32a753e48dbe3b9164
Author: Dalai Felinto
Date:   Fri Feb 22 18:00:45 2019 -0300
Branches: master
https://developer.blender.org/rB655faca105863eafd1080d32a753e48dbe3b9164

Fix: Workbench assert on non-image texture node

This was not report, but it would happen if you open the sample file
from T61858 and changed to solid view with texture.

===================================================================

M	source/blender/draw/engines/workbench/workbench_materials.c

===================================================================

diff --git a/source/blender/draw/engines/workbench/workbench_materials.c b/source/blender/draw/engines/workbench/workbench_materials.c
index 921585122dd..5fd4c4a6109 100644
--- a/source/blender/draw/engines/workbench/workbench_materials.c
+++ b/source/blender/draw/engines/workbench/workbench_materials.c
@@ -225,10 +225,24 @@ void workbench_material_get_image_and_mat(Object *ob, int mat_nr, Image **r_imag
 	bNode *node;
 	*r_mat = give_current_material(ob, mat_nr);
 	ED_object_get_active_image(ob, mat_nr, r_image, NULL, &node, NULL);
-	if (node) {
-		BLI_assert(node->type == SH_NODE_TEX_IMAGE);
-		NodeTexImage *storage = node->storage;
-		*r_interp = storage->interpolation;
+	if (node && *r_image) {
+		switch (node->type) {
+			case SH_NODE_TEX_IMAGE:
+			{
+				NodeTexImage *storage = node->storage;
+				*r_interp = storage->interpolation;
+				break;
+			}
+			case SH_NODE_TEX_ENVIRONMENT:
+			{
+				NodeTexEnvironment *storage = node->storage;
+				*r_interp = storage->interpolation;
+				break;
+			}
+			default:
+				BLI_assert(!"Node type not supported by workbench");
+				*r_interp = 0;
+		}
 	}
 	else {
 		*r_interp = 0;



More information about the Bf-blender-cvs mailing list