[Bf-blender-cvs] [210f7f0f8e9] master: Compositor: stream operators for WorkPackages.
Jeroen Bakker
noreply at git.blender.org
Fri Apr 2 15:42:05 CEST 2021
Commit: 210f7f0f8e9850acbc78fb07023cf017d628c21c
Author: Jeroen Bakker
Date: Fri Apr 2 15:41:16 2021 +0200
Branches: master
https://developer.blender.org/rB210f7f0f8e9850acbc78fb07023cf017d628c21c
Compositor: stream operators for WorkPackages.
Helps developers during debugging.
===================================================================
M source/blender/compositor/CMakeLists.txt
M source/blender/compositor/COM_defines.h
M source/blender/compositor/intern/COM_CompositorContext.h
A source/blender/compositor/intern/COM_Enums.cc
A source/blender/compositor/intern/COM_Enums.h
M source/blender/compositor/intern/COM_NodeOperation.h
M source/blender/compositor/intern/COM_WorkPackage.cc
M source/blender/compositor/intern/COM_WorkPackage.h
M source/blender/compositor/operations/COM_QualityStepHelper.h
===================================================================
diff --git a/source/blender/compositor/CMakeLists.txt b/source/blender/compositor/CMakeLists.txt
index c8ee8af4542..872eb66e789 100644
--- a/source/blender/compositor/CMakeLists.txt
+++ b/source/blender/compositor/CMakeLists.txt
@@ -59,6 +59,7 @@ set(SRC
intern/COM_CompositorContext.h
intern/COM_Converter.cc
intern/COM_Converter.h
+ intern/COM_Enums.cc
intern/COM_Debug.cc
intern/COM_Debug.h
intern/COM_Device.cc
diff --git a/source/blender/compositor/COM_defines.h b/source/blender/compositor/COM_defines.h
index 5a5868f1909..c5ff2b3adc6 100644
--- a/source/blender/compositor/COM_defines.h
+++ b/source/blender/compositor/COM_defines.h
@@ -52,52 +52,6 @@ constexpr int COM_data_type_num_channels(const DataType datatype)
constexpr int COM_DATA_TYPE_VALUE_CHANNELS = COM_data_type_num_channels(DataType::Value);
constexpr int COM_DATA_TYPE_COLOR_CHANNELS = COM_data_type_num_channels(DataType::Color);
-/**
- * \brief Possible quality settings
- * \see CompositorContext.quality
- * \ingroup Execution
- */
-enum class CompositorQuality {
- /** \brief High quality setting */
- High = 0,
- /** \brief Medium quality setting */
- Medium = 1,
- /** \brief Low quality setting */
- Low = 2,
-};
-
-/**
- * \brief Possible priority settings
- * \ingroup Execution
- */
-enum class CompositorPriority {
- /** \brief High quality setting */
- High = 2,
- /** \brief Medium quality setting */
- Medium = 1,
- /** \brief Low quality setting */
- Low = 0,
-};
-
-/**
- * \brief the execution state of a chunk in an ExecutionGroup
- * \ingroup Execution
- */
-enum class eChunkExecutionState {
- /**
- * \brief chunk is not yet scheduled
- */
- NotScheduled = 0,
- /**
- * \brief chunk is scheduled, but not yet executed
- */
- Scheduled = 1,
- /**
- * \brief chunk is executed.
- */
- Executed = 2,
-};
-
// configurable items
// chunk size determination
diff --git a/source/blender/compositor/intern/COM_CompositorContext.h b/source/blender/compositor/intern/COM_CompositorContext.h
index c6468865fc8..9abbda2ccd6 100644
--- a/source/blender/compositor/intern/COM_CompositorContext.h
+++ b/source/blender/compositor/intern/COM_CompositorContext.h
@@ -19,265 +19,269 @@
#pragma once
#include "BLI_rect.h"
-#include "COM_defines.h"
+
+#include "COM_Enums.h"
+
#include "DNA_color_types.h"
#include "DNA_node_types.h"
#include "DNA_scene_types.h"
+
#include <string>
#include <vector>
-namespace blender::compositor {
-
-/**
- * \brief Overall context of the compositor
- */
-class CompositorContext {
- private:
- /**
- * \brief The rendering field describes if we are rendering (F12) or if we are editing (Node
- * editor) This field is initialized in ExecutionSystem and must only be read from that point on.
- * \see ExecutionSystem
- */
- bool m_rendering;
-
- /**
- * \brief The quality of the composite.
- * This field is initialized in ExecutionSystem and must only be read from that point on.
- * \see ExecutionSystem
- */
- CompositorQuality m_quality;
-
- Scene *m_scene;
-
- /**
- * \brief Reference to the render data that is being composited.
- * This field is initialized in ExecutionSystem and must only be read from that point on.
- * \see ExecutionSystem
- */
- RenderData *m_rd;
-
- /**
- * \brief reference to the bNodeTree
- * This field is initialized in ExecutionSystem and must only be read from that point on.
- * \see ExecutionSystem
- */
- bNodeTree *m_bnodetree;
-
- /**
- * \brief Preview image hash table
- * This field is initialized in ExecutionSystem and must only be read from that point on.
- */
- bNodeInstanceHash *m_previews;
-
- /**
- * \brief does this system have active opencl devices?
- */
- bool m_hasActiveOpenCLDevices;
-
- /**
- * \brief Skip slow nodes
- */
- bool m_fastCalculation;
-
- /* \brief color management settings */
- const ColorManagedViewSettings *m_viewSettings;
- const ColorManagedDisplaySettings *m_displaySettings;
-
- /**
- * \brief active rendering view name
- */
- const char *m_viewName;
-
- public:
- /**
- * \brief constructor initializes the context with default values.
- */
- CompositorContext();
-
- /**
- * \brief set the rendering field of the context
- */
- void setRendering(bool rendering)
- {
- this->m_rendering = rendering;
- }
-
- /**
- * \brief get the rendering field of the context
- */
- bool isRendering() const
- {
- return this->m_rendering;
- }
-
- /**
- * \brief set the scene of the context
- */
- void setRenderData(RenderData *rd)
- {
- this->m_rd = rd;
- }
-
- /**
- * \brief set the bnodetree of the context
- */
- void setbNodeTree(bNodeTree *bnodetree)
- {
- this->m_bnodetree = bnodetree;
- }
-
- /**
- * \brief get the bnodetree of the context
- */
- const bNodeTree *getbNodeTree() const
- {
- return this->m_bnodetree;
- }
-
- /**
- * \brief get the scene of the context
- */
- const RenderData *getRenderData() const
- {
- return this->m_rd;
- }
-
- void setScene(Scene *scene)
- {
- m_scene = scene;
- }
- Scene *getScene() const
- {
- return m_scene;
- }
-
- /**
- * \brief set the preview image hash table
- */
- void setPreviewHash(bNodeInstanceHash *previews)
- {
- this->m_previews = previews;
- }
-
- /**
- * \brief get the preview image hash table
- */
- bNodeInstanceHash *getPreviewHash() const
- {
- return this->m_previews;
- }
-
- /**
- * \brief set view settings of color color management
- */
- void setViewSettings(const ColorManagedViewSettings *viewSettings)
- {
- this->m_viewSettings = viewSettings;
- }
-
- /**
- * \brief get view settings of color color management
- */
- const ColorManagedViewSettings *getViewSettings() const
- {
- return this->m_viewSettings;
- }
-
- /**
- * \brief set display settings of color color management
- */
- void setDisplaySettings(const ColorManagedDisplaySettings *displaySettings)
- {
- this->m_displaySettings = displaySettings;
- }
-
- /**
- * \brief get display settings of color color management
- */
- const ColorManagedDisplaySettings *getDisplaySettings() const
- {
- return this->m_displaySettings;
- }
-
- /**
- * \brief set the quality
- */
- void setQuality(CompositorQuality quality)
- {
- this->m_quality = quality;
- }
-
- /**
- * \brief get the quality
- */
- CompositorQuality getQuality() const
- {
- return this->m_quality;
- }
-
- /**
- * \brief get the current frame-number of the scene in this context
- */
- int getFramenumber() const;
-
- /**
- * \brief has this system active openclDevices?
- */
- bool getHasActiveOpenCLDevices() const
- {
- return this->m_hasActiveOpenCLDevices;
- }
-
- /**
- * \brief set has this system active openclDevices?
- */
- void setHasActiveOpenCLDevices(bool hasAvtiveOpenCLDevices)
- {
- this->m_hasActiveOpenCLDevices = hasAvtiveOpenCLDevices;
- }
-
- /**
- * \brief get the active rendering view
- */
- const char *getViewName() const
- {
- return this->m_viewName;
- }
-
- /**
- * \brief set the active rendering view
- */
- void setViewName(const char *viewName)
- {
- this->m_viewName = viewName;
- }
-
- int getChunksize() const
- {
- return this->getbNodeTree()->chunksize;
- }
-
- void setFastCalculation(bool fastCalculation)
- {
- this->m_fastCalculation = fastCalculation;
- }
- bool isFastCalculation() const
- {
- return this->m_fastCalculation;
- }
- bool isGroupnodeBufferEnabled() const
- {
- return (this->getbNodeTree()->flag & NTREE_COM_GROUPNODE_BUFFER) != 0;
- }
+ namespace blender::compositor
+{
/**
- * \brief Get the render percentage as a factor.
- * The compositor uses a factor i.o. a percentage.
+ * \brief Overall context of the compositor
*/
- float getRenderPercentageAsFactor() const
- {
- return m_rd->size * 0.01f;
- }
-};
+ class CompositorContext {
+ private:
+ /**
+ * \brief The rendering field describes if we are rendering (F12) or if we are editing (Node
+ * editor) This field is initialized in ExecutionSystem and must only be read from that point
+ * on. \see ExecutionSystem
+ */
+ bool m_rendering;
+
+ /**
+ * \brief The quality of the composite.
+ * This field is initialized in ExecutionSystem and must only be read from that point on.
+ * \see ExecutionSystem
+ */
+ CompositorQuality m_quality;
+
+ Scene *m_scene;
+
+ /**
+ * \brief Reference to the render data that is being composited.
+ * This field is initialized in ExecutionSystem and must only be read from that point on.
+ * \see ExecutionSystem
+ */
+ RenderData *m_rd;
+
+ /**
+ * \brief reference to the bNodeTree
+ * This field is initialized in ExecutionSystem and must only be read from that point on.
+ * \see ExecutionSystem
+ */
+ bNodeTree *m_bnodetree;
+
+ /**
+ * \brief Preview image hash table
+ * This field is initialized in ExecutionSystem and must only be read from that point on.
+ */
+ bNodeInstanceHash *m_previews;
+
+ /**
+ * \brief does this system have active opencl devices?
+ */
+ bool m_hasActiveOpenCLDevices;
+
+ /**
+ * \brief Skip slow nodes
+ */
+ bool m_fastCalculation;
+
+ /* \brief color management settings */
+ const ColorManagedViewSettings *m_viewSettings;
+ const ColorManagedDisplaySettings *m_displaySettings;
+
+ /**
+ * \brief active rendering view name
+ */
+ const char *m_viewName;
+
+ public:
+ /**
+ * \brief constructor initializes the context with default values.
+ */
+ CompositorContext();
+
+ /**
+ * \brief set the rendering field of the context
+ */
+ void setRendering(bool rendering)
+ {
+ this->m_rendering = rendering;
+ }
+
+ /**
+ * \brief get the rendering field of the context
+ */
+ bool isRendering() const
+ {
+ return this->m_rendering;
+ }
+
+ /**
+ * \brief set the scene of the context
+ */
+ void setRenderData(RenderData *rd)
+ {
+ this->m_rd = rd;
+ }
+
+ /**
+ * \brief se
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list