Depsgrapgh: Use more distinctive opcode for texture and image evaluation
This commit is contained in:
		@@ -1534,23 +1534,20 @@ void DepsgraphNodeBuilder::build_texture(Tex *texture)
 | 
			
		||||
			build_image(texture->ima);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	/* Placeholder so we can add relations and tag ID node for update. */
 | 
			
		||||
	add_operation_node(&texture->id,
 | 
			
		||||
	                   DEG_NODE_TYPE_PARAMETERS,
 | 
			
		||||
	                   DEG_NODE_TYPE_GENERIC_DATABLOCK,
 | 
			
		||||
	                   NULL,
 | 
			
		||||
	                   DEG_OPCODE_PLACEHOLDER);
 | 
			
		||||
	                   DEG_OPCODE_GENERIC_DATABLOCK_UPDATE);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void DepsgraphNodeBuilder::build_image(Image *image) {
 | 
			
		||||
	if (built_map_.checkIsBuiltAndTag(image)) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	/* Placeholder so we can add relations and tag ID node for update. */
 | 
			
		||||
	add_operation_node(&image->id,
 | 
			
		||||
	                   DEG_NODE_TYPE_PARAMETERS,
 | 
			
		||||
	                   DEG_NODE_TYPE_GENERIC_DATABLOCK,
 | 
			
		||||
	                   NULL,
 | 
			
		||||
	                   DEG_OPCODE_PLACEHOLDER,
 | 
			
		||||
	                   "Image Eval");
 | 
			
		||||
	                   DEG_OPCODE_GENERIC_DATABLOCK_UPDATE);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void DepsgraphNodeBuilder::build_compositor(Scene *scene)
 | 
			
		||||
 
 | 
			
		||||
@@ -422,6 +422,7 @@ static void deg_debug_graphviz_node(const DebugContext &ctx,
 | 
			
		||||
		case DEG_NODE_TYPE_BATCH_CACHE:
 | 
			
		||||
		case DEG_NODE_TYPE_DUPLI:
 | 
			
		||||
		case DEG_NODE_TYPE_SYNCHRONIZE:
 | 
			
		||||
		case DEG_NODE_TYPE_GENERIC_DATABLOCK:
 | 
			
		||||
		{
 | 
			
		||||
			ComponentDepsNode *comp_node = (ComponentDepsNode *)node;
 | 
			
		||||
			if (!comp_node->operations.empty()) {
 | 
			
		||||
 
 | 
			
		||||
@@ -106,6 +106,8 @@ const char *nodeTypeAsString(eDepsNode_Type type)
 | 
			
		||||
		STRINGIFY_TYPE(DUPLI);
 | 
			
		||||
		/* Synchronization. */
 | 
			
		||||
		STRINGIFY_TYPE(SYNCHRONIZE);
 | 
			
		||||
		/* Generic datablock. */
 | 
			
		||||
		STRINGIFY_TYPE(GENERIC_DATABLOCK);
 | 
			
		||||
 | 
			
		||||
		/* Total number of meaningful node types. */
 | 
			
		||||
		case NUM_DEG_NODE_TYPES: return "SpecialCase";
 | 
			
		||||
@@ -184,6 +186,8 @@ const char *operationCodeAsString(eDepsOperation_Code opcode)
 | 
			
		||||
		STRINGIFY_OPCODE(MOVIECLIP_SELECT_UPDATE);
 | 
			
		||||
		/* Synchronization. */
 | 
			
		||||
		STRINGIFY_OPCODE(SYNCHRONIZE_TO_ORIGINAL);
 | 
			
		||||
		/* Generic datablock. */
 | 
			
		||||
		STRINGIFY_OPCODE(GENERIC_DATABLOCK_UPDATE);
 | 
			
		||||
 | 
			
		||||
		case DEG_NUM_OPCODES: return "SpecialCase";
 | 
			
		||||
#undef STRINGIFY_OPCODE
 | 
			
		||||
 
 | 
			
		||||
@@ -138,6 +138,9 @@ typedef enum eDepsNode_Type {
 | 
			
		||||
	 * changed in view layer.
 | 
			
		||||
	 */
 | 
			
		||||
	DEG_NODE_TYPE_OBJECT_FROM_LAYER,
 | 
			
		||||
	/* Un-interestying datablock, which is a part of dependency graph, but does
 | 
			
		||||
	 * not have very distinctive update procedure.  */
 | 
			
		||||
	DEG_NODE_TYPE_GENERIC_DATABLOCK,
 | 
			
		||||
 | 
			
		||||
	/* **** Evaluation-Related Outer Types (with Subdata) **** */
 | 
			
		||||
 | 
			
		||||
@@ -292,6 +295,9 @@ typedef enum eDepsOperation_Code {
 | 
			
		||||
	/* Synchronization clips. ----------------------------------------------- */
 | 
			
		||||
	DEG_OPCODE_SYNCHRONIZE_TO_ORIGINAL,
 | 
			
		||||
 | 
			
		||||
	/* Generic datablock ---------------------------------------------------- */
 | 
			
		||||
	DEG_OPCODE_GENERIC_DATABLOCK_UPDATE,
 | 
			
		||||
 | 
			
		||||
	DEG_NUM_OPCODES,
 | 
			
		||||
} eDepsOperation_Code;
 | 
			
		||||
const char *operationCodeAsString(eDepsOperation_Code opcode);
 | 
			
		||||
 
 | 
			
		||||
@@ -402,6 +402,7 @@ DEG_COMPONENT_NODE_DEFINE(Transform,         TRANSFORM,          ID_RECALC_TRANS
 | 
			
		||||
DEG_COMPONENT_NODE_DEFINE(ObjectFromLayer,   OBJECT_FROM_LAYER,  ID_RECALC);
 | 
			
		||||
DEG_COMPONENT_NODE_DEFINE(Dupli,             DUPLI,              0);
 | 
			
		||||
DEG_COMPONENT_NODE_DEFINE(Synchronize,       SYNCHRONIZE,        0);
 | 
			
		||||
DEG_COMPONENT_NODE_DEFINE(GenericDatablock,  GENERIC_DATABLOCK,  0);
 | 
			
		||||
 | 
			
		||||
/* Node Types Register =================================== */
 | 
			
		||||
 | 
			
		||||
@@ -426,6 +427,7 @@ void deg_register_component_depsnodes()
 | 
			
		||||
	deg_register_node_typeinfo(&DNTI_OBJECT_FROM_LAYER);
 | 
			
		||||
	deg_register_node_typeinfo(&DNTI_DUPLI);
 | 
			
		||||
	deg_register_node_typeinfo(&DNTI_SYNCHRONIZE);
 | 
			
		||||
	deg_register_node_typeinfo(&DNTI_GENERIC_DATABLOCK);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
}  // namespace DEG
 | 
			
		||||
 
 | 
			
		||||
@@ -201,6 +201,7 @@ DEG_COMPONENT_NODE_DECLARE_GENERIC(Transform);
 | 
			
		||||
DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE(ObjectFromLayer);
 | 
			
		||||
DEG_COMPONENT_NODE_DECLARE_GENERIC(Dupli);
 | 
			
		||||
DEG_COMPONENT_NODE_DECLARE_GENERIC(Synchronize);
 | 
			
		||||
DEG_COMPONENT_NODE_DECLARE_GENERIC(GenericDatablock);
 | 
			
		||||
 | 
			
		||||
/* Bone Component */
 | 
			
		||||
struct BoneComponentDepsNode : public ComponentDepsNode {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user