doxygen: add newline after \file
[blender.git] / source / blender / depsgraph / DEG_depsgraph_debug.h
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2014 Blender Foundation.
17  * All rights reserved.
18  */
19
20 /** \file
21  * \ingroup depsgraph
22  *
23  * Public API for Querying and Filtering Depsgraph
24  */
25
26 #ifndef __DEG_DEPSGRAPH_DEBUG_H__
27 #define __DEG_DEPSGRAPH_DEBUG_H__
28
29 #include <stdio.h>
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34
35 struct Depsgraph;
36 struct Scene;
37 struct ViewLayer;
38
39 /* ------------------------------------------------ */
40
41 /* NOTE: Those flags are same bitmask as G.debug_flags */
42
43 void DEG_debug_flags_set(struct Depsgraph *depsgraph, int flags);
44 int DEG_debug_flags_get(const struct Depsgraph *depsgraph);
45
46 void DEG_debug_name_set(struct Depsgraph *depsgraph, const char *name);
47 const char *DEG_debug_name_get(struct Depsgraph *depsgraph);
48
49 /* ------------------------------------------------ */
50
51 void DEG_stats_simple(const struct Depsgraph *graph,
52                       size_t *r_outer,
53                       size_t *r_operations,
54                       size_t *r_relations);
55
56 /* ************************************************ */
57 /* Diagram-Based Graph Debugging */
58
59 void DEG_debug_relations_graphviz(const struct Depsgraph *graph,
60                                   FILE *stream,
61                                   const char *label);
62
63 void DEG_debug_stats_gnuplot(const struct Depsgraph *graph,
64                              FILE *stream,
65                              const char *label,
66                              const char *output_filename);
67
68 /* ************************************************ */
69
70 /* Compare two dependency graphs. */
71 bool DEG_debug_compare(const struct Depsgraph *graph1,
72                        const struct Depsgraph *graph2);
73
74 /* Check that dependnecies in the graph are really up to date. */
75 bool DEG_debug_graph_relations_validate(struct Depsgraph *graph,
76                                         struct Main *bmain,
77                                         struct Scene *scene,
78                                         struct ViewLayer *view_layer);
79
80 /* Perform consistency check on the graph. */
81 bool DEG_debug_consistency_check(struct Depsgraph *graph);
82
83 #ifdef __cplusplus
84 } /* extern "C" */
85 #endif
86
87 #endif  /* __DEG_DEPSGRAPH_DEBUG_H__ */