diff options
Diffstat (limited to 'source/blender/compositor/operations/COM_MovieClipOperation.cc')
-rw-r--r-- | source/blender/compositor/operations/COM_MovieClipOperation.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/source/blender/compositor/operations/COM_MovieClipOperation.cc b/source/blender/compositor/operations/COM_MovieClipOperation.cc index d93a75407c4..e520b928edf 100644 --- a/source/blender/compositor/operations/COM_MovieClipOperation.cc +++ b/source/blender/compositor/operations/COM_MovieClipOperation.cc @@ -116,6 +116,18 @@ void MovieClipBaseOperation::executePixelSampled(float output[4], } } +void MovieClipBaseOperation::update_memory_buffer_partial(MemoryBuffer *output, + const rcti &area, + Span<MemoryBuffer *> UNUSED(inputs)) +{ + if (m_movieClipBuffer) { + output->copy_from(m_movieClipBuffer, area); + } + else { + output->fill(area, COM_COLOR_TRANSPARENT); + } +} + MovieClipOperation::MovieClipOperation() : MovieClipBaseOperation() { this->addOutputSocket(DataType::Color); @@ -136,4 +148,16 @@ void MovieClipAlphaOperation::executePixelSampled(float output[4], output[0] = result[3]; } +void MovieClipAlphaOperation::update_memory_buffer_partial(MemoryBuffer *output, + const rcti &area, + Span<MemoryBuffer *> UNUSED(inputs)) +{ + if (m_movieClipBuffer) { + output->copy_from(m_movieClipBuffer, area, 3, COM_DATA_TYPE_VALUE_CHANNELS, 0); + } + else { + output->fill(area, COM_VALUE_ZERO); + } +} + } // namespace blender::compositor |