Cleanup: remove non-existing function declarations
[blender.git] / source / blender / compositor / intern / COM_CompositorContext.h
1 /*
2  * Copyright 2011, Blender Foundation.
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  *
18  * Contributor:
19  *      Jeroen Bakker
20  *      Monique Dewanchand
21  */
22
23 #ifndef __COM_COMPOSITORCONTEXT_H__
24 #define __COM_COMPOSITORCONTEXT_H__
25
26 #include <vector>
27 #include <string>
28 #include "DNA_node_types.h"
29 #include "DNA_color_types.h"
30 #include "BLI_rect.h"
31 #include "DNA_scene_types.h"
32 #include "COM_defines.h"
33
34 /**
35  * \brief Overall context of the compositor
36  */
37 class CompositorContext {
38 private:
39         /**
40          * \brief The rendering field describes if we are rendering (F12) or if we are editing (Node editor)
41          * This field is initialized in ExecutionSystem and must only be read from that point on.
42          * \see ExecutionSystem
43          */
44         bool m_rendering;
45
46         /**
47          * \brief The quality of the composite.
48          * This field is initialized in ExecutionSystem and must only be read from that point on.
49          * \see ExecutionSystem
50          */
51         CompositorQuality m_quality;
52
53         Scene *m_scene;
54
55         /**
56          * \brief Reference to the render data that is being composited.
57          * This field is initialized in ExecutionSystem and must only be read from that point on.
58          * \see ExecutionSystem
59          */
60         RenderData *m_rd;
61
62         /**
63          * \brief reference to the bNodeTree
64          * This field is initialized in ExecutionSystem and must only be read from that point on.
65          * \see ExecutionSystem
66          */
67         bNodeTree *m_bnodetree;
68
69         /**
70          * \brief Preview image hash table
71          * This field is initialized in ExecutionSystem and must only be read from that point on.
72          */
73         bNodeInstanceHash *m_previews;
74
75         /**
76          * \brief does this system have active opencl devices?
77          */
78         bool m_hasActiveOpenCLDevices;
79
80         /**
81          * \brief Skip slow nodes
82          */
83         bool m_fastCalculation;
84
85         /* \brief color management settings */
86         const ColorManagedViewSettings *m_viewSettings;
87         const ColorManagedDisplaySettings *m_displaySettings;
88
89         /**
90          * \brief active rendering view name
91          */
92         const char *m_viewName;
93
94 public:
95         /**
96          * \brief constructor initializes the context with default values.
97          */
98         CompositorContext();
99
100         /**
101          * \brief set the rendering field of the context
102          */
103         void setRendering(bool rendering) { this->m_rendering = rendering; }
104
105         /**
106          * \brief get the rendering field of the context
107          */
108         bool isRendering() const { return this->m_rendering; }
109
110         /**
111          * \brief set the scene of the context
112          */
113         void setRenderData(RenderData *rd) { this->m_rd = rd; }
114
115         /**
116          * \brief set the bnodetree of the context
117          */
118         void setbNodeTree(bNodeTree *bnodetree) { this->m_bnodetree = bnodetree; }
119
120         /**
121          * \brief get the bnodetree of the context
122          */
123         const bNodeTree *getbNodeTree() const { return this->m_bnodetree; }
124
125         /**
126          * \brief get the scene of the context
127          */
128         const RenderData *getRenderData() const { return this->m_rd; }
129
130         void setScene(Scene *scene) { m_scene = scene; }
131         Scene *getScene() const { return m_scene; }
132
133         /**
134          * \brief set the preview image hash table
135          */
136         void setPreviewHash(bNodeInstanceHash *previews) { this->m_previews = previews; }
137
138         /**
139          * \brief get the preview image hash table
140          */
141         bNodeInstanceHash *getPreviewHash() const { return this->m_previews; }
142
143         /**
144          * \brief set view settings of color color management
145          */
146         void setViewSettings(const ColorManagedViewSettings *viewSettings) { this->m_viewSettings = viewSettings; }
147
148         /**
149          * \brief get view settings of color color management
150          */
151         const ColorManagedViewSettings *getViewSettings() const { return this->m_viewSettings; }
152
153         /**
154          * \brief set display settings of color color management
155          */
156         void setDisplaySettings(const ColorManagedDisplaySettings *displaySettings) { this->m_displaySettings = displaySettings; }
157
158         /**
159          * \brief get display settings of color color management
160          */
161         const ColorManagedDisplaySettings *getDisplaySettings() const { return this->m_displaySettings; }
162
163         /**
164          * \brief set the quality
165          */
166         void setQuality(CompositorQuality quality) { this->m_quality = quality; }
167
168         /**
169          * \brief get the quality
170          */
171         CompositorQuality getQuality() const { return this->m_quality; }
172
173         /**
174          * \brief get the current framenumber of the scene in this context
175          */
176         int getFramenumber() const;
177
178         /**
179          * \brief has this system active openclDevices?
180          */
181         bool getHasActiveOpenCLDevices() const { return this->m_hasActiveOpenCLDevices; }
182
183         /**
184          * \brief set has this system active openclDevices?
185          */
186         void setHasActiveOpenCLDevices(bool hasAvtiveOpenCLDevices) { this->m_hasActiveOpenCLDevices = hasAvtiveOpenCLDevices; }
187
188         /**
189          * \brief get the active rendering view
190          */
191         const char *getViewName() const { return this->m_viewName; }
192
193         /**
194          * \brief set the active rendering view
195          */
196         void setViewName(const char *viewName) { this->m_viewName = viewName; }
197
198         int getChunksize() const { return this->getbNodeTree()->chunksize; }
199
200         void setFastCalculation(bool fastCalculation) {this->m_fastCalculation = fastCalculation;}
201         bool isFastCalculation() const { return this->m_fastCalculation; }
202         bool isGroupnodeBufferEnabled() const { return (this->getbNodeTree()->flag & NTREE_COM_GROUPNODE_BUFFER) != 0; }
203 };
204
205
206 #endif