[Bf-blender-cvs] [e8962f90de4] blender2.8: Fix compatibility flag for nodetree
Dalai Felinto
noreply at git.blender.org
Mon Oct 16 20:50:31 CEST 2017
Commit: e8962f90de4222d6f750d3d3478eff65490365d8
Author: Dalai Felinto
Date: Mon Oct 16 16:36:44 2017 -0200
Branches: blender2.8
https://developer.blender.org/rBe8962f90de4222d6f750d3d3478eff65490365d8
Fix compatibility flag for nodetree
NODE_NEWER_SHADING was introduced in e868b459bb8e however it should have been
added as a bitflag.
BKE_scene_uses_blender_eevee() was used in gpu_shader_output() as a workaround
for compatibility being poorly used.
Anyways this fixes this situation. This is necessary for an upcoming patch, even
though this is considered temporary - since the other NODE_*_SHADING values are
legacy from Blender Internal drawing.
===================================================================
M source/blender/blenkernel/BKE_node.h
M source/blender/gpu/intern/gpu_material.c
M source/blender/nodes/shader/node_shader_tree.c
M source/blender/nodes/shader/nodes/node_shader_output.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index ea0b350b8af..3bb8f6c9ed3 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -251,9 +251,9 @@ typedef struct bNodeType {
#define NODE_CLASS_LAYOUT 100
/* nodetype->compatibility */
-#define NODE_OLD_SHADING 1
-#define NODE_NEW_SHADING 2
-#define NODE_NEWER_SHADING 3
+#define NODE_OLD_SHADING (1 << 0)
+#define NODE_NEW_SHADING (1 << 1)
+#define NODE_NEWER_SHADING (1 << 2)
/* node resize directions */
#define NODE_RESIZE_TOP 1
diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c
index a08bef4472a..ef37d6bd02a 100644
--- a/source/blender/gpu/intern/gpu_material.c
+++ b/source/blender/gpu/intern/gpu_material.c
@@ -2154,7 +2154,7 @@ GPUMaterial *GPU_material_from_nodetree(
mat->engine_type = engine_type;
mat->options = options;
- ntreeGPUMaterialNodes(ntree, mat, NODE_NEWER_SHADING);
+ ntreeGPUMaterialNodes(ntree, mat, NODE_NEW_SHADING | NODE_NEWER_SHADING);
/* Let Draw manager finish the construction. */
if (mat->outlink) {
diff --git a/source/blender/nodes/shader/node_shader_tree.c b/source/blender/nodes/shader/node_shader_tree.c
index 35a8c712905..08205d589bf 100644
--- a/source/blender/nodes/shader/node_shader_tree.c
+++ b/source/blender/nodes/shader/node_shader_tree.c
@@ -504,7 +504,7 @@ static bool ntree_tag_ssr_bsdf_cb(bNode *fromnode, bNode *UNUSED(tonode), void *
*/
static void ntree_shader_tag_ssr_node(bNodeTree *ntree, short compatibility)
{
- if (compatibility != NODE_NEWER_SHADING) {
+ if (compatibility & NODE_NEWER_SHADING) {
/* We can only deal with new shading system here. */
return;
}
diff --git a/source/blender/nodes/shader/nodes/node_shader_output.c b/source/blender/nodes/shader/nodes/node_shader_output.c
index dcf6fec41a4..52f659d8321 100644
--- a/source/blender/nodes/shader/nodes/node_shader_output.c
+++ b/source/blender/nodes/shader/nodes/node_shader_output.c
@@ -76,10 +76,6 @@ static int gpu_shader_output(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSE
GPU_material_enable_alpha(mat);
#endif
- if (BKE_scene_uses_blender_eevee(GPU_material_scene(mat))) {
- return false;
- }
-
GPU_stack_link(mat, node, "output_node", in, out, &outlink);
GPU_material_output_link(mat, outlink);
More information about the Bf-blender-cvs
mailing list