98 fprintf(stderr,
"ERROR! Depsgraph wasn't tagged for update when it should have!\n");
114 if (tmp_rel == rel) {
120 if (tmp_rel == rel) {
124 if (counter1 != counter2) {
126 "Relation exists in outgoing direction but not in "
127 "incoming (%d vs. %d).\n",
139 if (tmp_rel == rel) {
145 if (tmp_rel == rel) {
149 if (counter1 != counter2) {
150 printf(
"Relation exists in incoming direction but not in outcoming (%d vs. %d).\n",
159 node->num_links_pending = 0;
160 node->custom_flags = 0;
164 if (
node->custom_flags) {
165 printf(
"Node %s is twice in the operations!\n",
node->identifier().c_str());
169 if (rel->
to->
type == deg::NodeType::OPERATION) {
175 node->custom_flags = 1;
179 int num_links_pending = 0;
181 if (rel->
from->
type == deg::NodeType::OPERATION) {
185 if (
node->num_links_pending != num_links_pending) {
186 printf(
"Valency mismatch: %s, %u != %d\n",
187 node->identifier().c_str(),
188 node->num_links_pending,
190 printf(
"Number of inlinks: %d\n", (
int)
node->inlinks.size());
207 size_t *r_operations,
220 if (r_outer || r_relations) {
221 size_t tot_outer = 0;
235 if (time_source !=
nullptr) {
240 *r_relations = tot_rels;
243 *r_outer = tot_outer;
251 if (name[0] ==
'\0') {
254 return "[" + deg::string(name) +
"]: ";
263 const char *function_name,
264 const char *object_name,
265 const void *object_address)
271 "%s%s on %s %s(%p)%s\n",
282 const char *function_name,
283 const char *object_name,
284 const void *object_address,
285 const char *subdata_comment,
286 const char *subdata_name,
287 const void *subdata_address)
293 "%s%s on %s %s(%p)%s %s %s %s(%p)%s\n",
309 const char *function_name,
310 const char *object_name,
311 const void *object_address,
312 const char *subdata_comment,
313 const char *subdata_name,
314 const void *subdata_address,
315 const int subdata_index)
321 "%s%s on %s %s(%p)%s %s %s[%d] %s(%p)%s\n",
338 const char *function_name,
339 const char *object_name,
340 const void *object_address,
341 const char *parent_comment,
342 const char *parent_name,
343 const void *parent_address)
349 "%s%s on %s %s(%p) [%s] %s %s %s(%p)%s\n",
365 const char *function_name,
366 const char *object_name,
367 const void *object_address,
374 "%s%s on %s %s(%p)%s at time %f\n",
Depsgraph * DEG_graph_new(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, eEvaluationMode mode)
struct Depsgraph Depsgraph
void DEG_graph_free(Depsgraph *graph)
void DEG_graph_build_from_view_layer(struct Depsgraph *graph)
eEvaluationMode DEG_get_mode(const Depsgraph *graph)
Object is a sort of wrapper for general info.
const Depsgraph * depsgraph
void DEG_debug_flags_set(Depsgraph *depsgraph, int flags)
static deg::string depsgraph_name_for_logging(struct Depsgraph *depsgraph)
void DEG_debug_print_eval_time(struct Depsgraph *depsgraph, const char *function_name, const char *object_name, const void *object_address, float time)
int DEG_debug_flags_get(const Depsgraph *depsgraph)
bool DEG_debug_compare(const struct Depsgraph *graph1, const struct Depsgraph *graph2)
bool DEG_debug_consistency_check(Depsgraph *graph)
void DEG_debug_print_eval(struct Depsgraph *depsgraph, const char *function_name, const char *object_name, const void *object_address)
bool DEG_debug_graph_relations_validate(Depsgraph *graph, Main *bmain, Scene *scene, ViewLayer *view_layer)
void DEG_debug_name_set(struct Depsgraph *depsgraph, const char *name)
void DEG_debug_print_begin(struct Depsgraph *depsgraph)
void DEG_debug_print_eval_subdata(struct Depsgraph *depsgraph, const char *function_name, const char *object_name, const void *object_address, const char *subdata_comment, const char *subdata_name, const void *subdata_address)
void DEG_stats_simple(const Depsgraph *graph, size_t *r_outer, size_t *r_operations, size_t *r_relations)
const char * DEG_debug_name_get(struct Depsgraph *depsgraph)
void DEG_debug_print_eval_subdata_index(struct Depsgraph *depsgraph, const char *function_name, const char *object_name, const void *object_address, const char *subdata_comment, const char *subdata_name, const void *subdata_address, const int subdata_index)
void DEG_debug_print_eval_parent_typed(struct Depsgraph *depsgraph, const char *function_name, const char *object_name, const void *object_address, const char *parent_comment, const char *parent_name, const void *parent_address)
string color_for_pointer(const void *pointer)
TimeSourceNode * find_time_source() const
OperationNodes operations
uint32_t num_links_pending