82 fprintf(stderr,
"ERROR! Depsgraph wasn't tagged for update when it should have!\n");
104 if (tmp_rel == rel) {
108 if (counter1 != counter2) {
110 "Relation exists in outgoing direction but not in "
111 "incoming (%d vs. %d).\n",
123 if (tmp_rel == rel) {
129 if (tmp_rel == rel) {
133 if (counter1 != counter2) {
134 printf(
"Relation exists in incoming direction but not in outcoming (%d vs. %d).\n",
143 node->num_links_pending = 0;
144 node->custom_flags = 0;
148 if (
node->custom_flags) {
149 printf(
"Node %s is twice in the operations!\n",
node->identifier().c_str());
153 if (rel->
to->
type == deg::NodeType::OPERATION) {
159 node->custom_flags = 1;
163 int num_links_pending = 0;
165 if (rel->
from->
type == deg::NodeType::OPERATION) {
169 if (
node->num_links_pending != num_links_pending) {
170 printf(
"Valency mismatch: %s, %u != %d\n",
171 node->identifier().c_str(),
172 node->num_links_pending,
174 printf(
"Number of inlinks: %d\n", (
int)
node->inlinks.size());
185 size_t *r_operations,
198 if (r_outer || r_relations) {
199 size_t tot_outer = 0;
213 if (time_source !=
nullptr) {
218 *r_relations = tot_rels;
221 *r_outer = tot_outer;
229 if (name[0] ==
'\0') {
232 return "[" + deg::string(name) +
"]: ";
241 const char *function_name,
242 const char *object_name,
243 const void *object_address)
249 "%s%s on %s %s(%p)%s\n",
260 const char *function_name,
261 const char *object_name,
262 const void *object_address,
263 const char *subdata_comment,
264 const char *subdata_name,
265 const void *subdata_address)
271 "%s%s on %s %s(%p)%s %s %s %s(%p)%s\n",
287 const char *function_name,
288 const char *object_name,
289 const void *object_address,
290 const char *subdata_comment,
291 const char *subdata_name,
292 const void *subdata_address,
293 const int subdata_index)
299 "%s%s on %s %s(%p)%s %s %s[%d] %s(%p)%s\n",
316 const char *function_name,
317 const char *object_name,
318 const void *object_address,
319 const char *parent_comment,
320 const char *parent_name,
321 const void *parent_address)
327 "%s%s on %s %s(%p) [%s] %s %s %s(%p)%s\n",
343 const char *function_name,
344 const char *object_name,
345 const void *object_address,
352 "%s%s on %s %s(%p)%s at time %f\n",
#define BLI_assert_msg(a, msg)
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