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:
authorManuel Castilla <manzanillawork@gmail.com>2021-07-19 19:17:41 +0300
committerManuel Castilla <manzanillawork@gmail.com>2021-07-19 22:26:58 +0300
commit0a0c2c0217d492308f7b0ba4659ef3961fa792bb (patch)
treed7e1eca970ee99e2d401c399753b957d9cf5b5ea /source/blender/compositor/operations/COM_EllipseMaskOperation.h
parent45b46e5de9fbfb4985d81ac43cf61a6dcb339ff7 (diff)
Compositor: Full frame Ellipse Mask node
Adds full frame implementation to this node operation. No functional changes. 3x times faster than tiled fallback. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11635
Diffstat (limited to 'source/blender/compositor/operations/COM_EllipseMaskOperation.h')
-rw-r--r--source/blender/compositor/operations/COM_EllipseMaskOperation.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/source/blender/compositor/operations/COM_EllipseMaskOperation.h b/source/blender/compositor/operations/COM_EllipseMaskOperation.h
index 64afe0145cf..fba3f979d26 100644
--- a/source/blender/compositor/operations/COM_EllipseMaskOperation.h
+++ b/source/blender/compositor/operations/COM_EllipseMaskOperation.h
@@ -18,12 +18,14 @@
#pragma once
-#include "COM_NodeOperation.h"
+#include "COM_MultiThreadedOperation.h"
namespace blender::compositor {
-class EllipseMaskOperation : public NodeOperation {
+class EllipseMaskOperation : public MultiThreadedOperation {
private:
+ using MaskFunc = std::function<float(bool is_inside, const float *mask, const float *value)>;
+
/**
* Cached reference to the inputProgram
*/
@@ -64,6 +66,16 @@ class EllipseMaskOperation : public NodeOperation {
{
this->m_maskType = maskType;
}
+
+ void update_memory_buffer_partial(MemoryBuffer *output,
+ const rcti &area,
+ Span<MemoryBuffer *> inputs) override;
+
+ private:
+ void apply_mask(MemoryBuffer *output,
+ const rcti &area,
+ Span<MemoryBuffer *> inputs,
+ MaskFunc mask_func);
};
} // namespace blender::compositor