[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