Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/compositor/intern/COM_ExecutionGroup.h')
-rw-r--r--source/blender/compositor/intern/COM_ExecutionGroup.h33
1 files changed, 7 insertions, 26 deletions
diff --git a/source/blender/compositor/intern/COM_ExecutionGroup.h b/source/blender/compositor/intern/COM_ExecutionGroup.h
index a995da38dec..c345724d4c9 100644
--- a/source/blender/compositor/intern/COM_ExecutionGroup.h
+++ b/source/blender/compositor/intern/COM_ExecutionGroup.h
@@ -31,6 +31,7 @@
#include "COM_MemoryProxy.h"
#include "COM_Node.h"
#include "COM_NodeOperation.h"
+#include "COM_WorkPackage.h"
#include <vector>
namespace blender::compositor {
@@ -41,25 +42,6 @@ class MemoryBuffer;
class ReadBufferOperation;
class Device;
-/**
- * \brief the execution state of a chunk in an ExecutionGroup
- * \ingroup Execution
- */
-enum class eChunkExecutionState {
- /**
- * \brief chunk is not yet scheduled
- */
- NOT_SCHEDULED = 0,
- /**
- * \brief chunk is scheduled, but not yet executed
- */
- SCHEDULED = 1,
- /**
- * \brief chunk is executed.
- */
- EXECUTED = 2,
-};
-
struct ExecutionGroupFlags {
bool initialized : 1;
/**
@@ -163,12 +145,9 @@ class ExecutionGroup {
unsigned int m_chunks_finished;
/**
- * \brief m_chunk_execution_states holds per chunk the execution state. this state can be
- * - eChunkExecutionState::NOT_SCHEDULED: not scheduled
- * - eChunkExecutionState::SCHEDULED: scheduled
- * - eChunkExecutionState::EXECUTED: executed
+ * \brief m_work_packages holds all unit of work.
*/
- blender::Vector<eChunkExecutionState> m_chunk_execution_states;
+ blender::Vector<WorkPackage> m_work_packages;
/**
* \brief denotes boundary for border compositing
@@ -201,7 +180,9 @@ class ExecutionGroup {
* \note Only gives useful results after the determination of the chunksize
* \see determineChunkSize()
*/
- void determineChunkRect(rcti *rect, const unsigned int xChunk, const unsigned int yChunk) const;
+ void determineChunkRect(rcti *r_rect,
+ const unsigned int xChunk,
+ const unsigned int yChunk) const;
/**
* \brief determine the number of chunks, based on the chunkSize, width and height.
@@ -395,7 +376,7 @@ class ExecutionGroup {
* \note Only gives useful results after the determination of the chunksize
* \see determineChunkSize()
*/
- void determineChunkRect(rcti *rect, const unsigned int chunkNumber) const;
+ void determineChunkRect(rcti *r_rect, const unsigned int chunkNumber) const;
void setChunksize(int chunksize)
{