Color Management, Stage 2: Switch color pipeline to use OpenColorIO
[blender.git] / source / blender / compositor / intern / COM_ExecutionSystem.h
index 293a35b3518fa7fcab442dc24c8bc6136125d95c..56a60bf7a039ffb113aaa70cabbdb9438e0385b1 100644 (file)
@@ -25,6 +25,7 @@ class ExecutionGroup;
 #ifndef _COM_ExecutionSystem_h
 #define _COM_ExecutionSystem_h
 
+#include "DNA_color_types.h"
 #include "DNA_node_types.h"
 #include <vector>
 #include "COM_Node.h"
@@ -37,7 +38,7 @@ using namespace std;
 
 /**
  * @page execution Execution model
- * In order to get to an efficient model for execution, serveral steps are being done. these steps are explained below.
+ * In order to get to an efficient model for execution, several steps are being done. these steps are explained below.
  *
  * @section EM_Step1 Step 1: translating blender node system to the new compsitor system
  * Blenders node structure is based on C structs (DNA). These structs are not efficient in the new architecture. We want to use classes in order to simplify the system.
@@ -64,7 +65,7 @@ using namespace std;
  * @section EM_Step3 Step3: add additional conversions to the operation system
  *   - Data type conversions: the system has 3 data types COM_DT_VALUE, COM_DT_VECTOR, COM_DT_COLOR. The user can connect a Value socket to a color socket. As values are ordered differently than colors a conversion happens.
  *
- *   - Image size conversions: the system can automatically convert when resolutions do not match. An InputSocket has a resize mode. This can be any of the folowing settings.
+ *   - Image size conversions: the system can automatically convert when resolutions do not match. An InputSocket has a resize mode. This can be any of the following settings.
  *     - [@ref InputSocketResizeMode.COM_SC_CENTER]: The center of both images are aligned
  *     - [@ref InputSocketResizeMode.COM_SC_FIT_WIDTH]: The width of both images are aligned
  *     - [@ref InputSocketResizeMode.COM_SC_FIT_HEIGHT]: the height of both images are aligned
@@ -108,27 +109,27 @@ private:
        /**
         * @brief the context used during execution
         */
-       CompositorContext context;
+       CompositorContext m_context;
 
        /**
         * @brief vector of nodes
         */
-       vector<Node *> nodes;
+       vector<Node *> m_nodes;
 
        /**
         * @brief vector of operations
         */
-       vector<NodeOperation *> operations;
+       vector<NodeOperation *> m_operations;
 
        /**
         * @brief vector of groups
         */
-       vector<ExecutionGroup *> groups
+       vector<ExecutionGroup *> m_groups;
 
        /**
         * @brief vector of connections
-        */;
-       vector<SocketConnection *> connections;
+        */
+       vector<SocketConnection *> m_connections;
 
 private: //methods
        /**
@@ -153,10 +154,11 @@ public:
         * @brief Create a new ExecutionSystem and initialize it with the
         * editingtree.
         *
-        * @param editingtree [bNodeTree*]
+        * @param editingtree [bNodeTree *]
         * @param rendering [true false]
         */
-       ExecutionSystem(RenderData *rd, bNodeTree *editingtree, bool rendering);
+       ExecutionSystem(RenderData *rd, bNodeTree *editingtree, bool rendering, bool fastcalculation,
+                       const ColorManagedViewSettings *viewSettings, const ColorManagedDisplaySettings *displaySettings);
 
        /**
         * Destructor
@@ -200,27 +202,27 @@ public:
        /**
         * @brief get the reference to the compositor context
         */
-       CompositorContext& getContext() { return this->context; }
+       CompositorContext &getContext() { return this->m_context; }
 
        /**
         * @brief get the reference to the compositor nodes
         */
-       vector<Node *>& getNodes() { return this->nodes; }
+       vector<Node *> &getNodes() { return this->m_nodes; }
 
        /**
         * @brief get the reference to the compositor connections
         */
-       vector<SocketConnection *>& getConnections() { return this->connections; }
+       vector<SocketConnection *>& getConnections() { return this->m_connections; }
 
        /**
         * @brief get the reference to the list of execution groups
         */
-       vector<ExecutionGroup *>& getExecutionGroups() { return this->groups; }
+       vector<ExecutionGroup *>& getExecutionGroups() { return this->m_groups; }
 
        /**
         * @brief get the reference to the list of operations
         */
-       vector<NodeOperation *>& getOperations() { return this->operations; }
+       vector<NodeOperation *>& getOperations() { return this->m_operations; }
 
 private: