Fix compatibility flag for nodetree

NODE_NEWER_SHADING was introduced in e868b459bb 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.
This commit is contained in:
Dalai Felinto 2017-10-16 16:36:44 -02:00
parent a2758152e2
commit e8962f90de
4 changed files with 5 additions and 9 deletions

View File

@ -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

View File

@ -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) {

View File

@ -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;
}

View File

@ -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);