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",
149 printf(
"Node %s is twice in the operations!\n", node->
identifier().c_str());
163 int num_links_pending = 0;
170 printf(
"Valency mismatch: %s, %u != %d\n",
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 "[" + std::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",
366 if (tag_name ==
nullptr) {
383 uint current_flag = flags;
389 while (current_flag != 0) {
#define BLI_assert_msg(a, msg)
MINLINE unsigned int bitscan_forward_clear_uint(unsigned int *a)
Depsgraph * DEG_graph_new(Main *bmain, Scene *scene, ViewLayer *view_layer, eEvaluationMode mode)
void DEG_graph_free(Depsgraph *graph)
const char * DEG_update_tag_as_string(IDRecalcFlag flag)
void DEG_graph_build_from_view_layer(Depsgraph *graph)
eEvaluationMode DEG_get_mode(const Depsgraph *graph)
BPy_StructRNA * depsgraph
void DEG_debug_print_eval_parent_typed(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)
void DEG_debug_flags_set(Depsgraph *depsgraph, int flags)
void DEG_debug_print_eval_time(Depsgraph *depsgraph, const char *function_name, const char *object_name, const void *object_address, float time)
static std::string stringify_append_bit(const std::string &str, IDRecalcFlag tag)
void DEG_debug_print_eval_subdata(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)
int DEG_debug_flags_get(const Depsgraph *depsgraph)
bool DEG_debug_compare(const Depsgraph *graph1, const Depsgraph *graph2)
bool DEG_debug_consistency_check(Depsgraph *graph)
void DEG_debug_print_begin(Depsgraph *depsgraph)
bool DEG_debug_graph_relations_validate(Depsgraph *graph, Main *bmain, Scene *scene, ViewLayer *view_layer)
void DEG_debug_print_eval(Depsgraph *depsgraph, const char *function_name, const char *object_name, const void *object_address)
void DEG_debug_print_eval_subdata_index(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)
const char * DEG_debug_name_get(Depsgraph *depsgraph)
void DEG_debug_name_set(Depsgraph *depsgraph, const char *name)
std::string DEG_stringify_recalc_flags(uint flags)
static std::string depsgraph_name_for_logging(Depsgraph *depsgraph)
void DEG_stats_simple(const Depsgraph *graph, size_t *r_outer, size_t *r_operations, size_t *r_relations)
std::string color_for_pointer(const void *pointer)
TimeSourceNode * find_time_source() const
OperationNodes operations
Map< ComponentIDKey, ComponentNode * > components
std::string identifier() const override
uint32_t num_links_pending