diff options
author | Lukas Toenne <lukas.toenne@googlemail.com> | 2013-08-16 17:11:15 +0400 |
---|---|---|
committer | Lukas Toenne <lukas.toenne@googlemail.com> | 2013-08-16 17:11:15 +0400 |
commit | 8d1c0b6f0f4012b379023b96b4c426b3432c018b (patch) | |
tree | a06f8d870de918fba20f3b8cfe5b615337dc4938 /source/blender/compositor/operations/COM_ReadBufferOperation.h | |
parent | fd7bffa3c5276229a0ca06e4ff59319fbfc674f9 (diff) |
Fix for #36468, "Buffer Groups" option changes compositing output.
Problem is that the read/write buffer operations only work with actual
image inputs. If a singular value is used as group input no actual
buffer will be created, the write operation does not schedule any chunks
and the ReadBufferOperation subsequently returns zero
(MemoryBuffer::read).
The fix uses the (0,0) resolution to detect single value input of the
WriteBufferOperation. The actual resolution is then clamped to (1,1) to
ensure we have a single pixel to store the value in. A m_single_value
flag is also set, so we can reliably distinguish this from genuine image
resolutions without having to check m_width/m_height later on.
The ReadBufferOperation copies this flag from the associated
WriteBufferOperation and if set will always return the single value from
pixel (0,0).
Diffstat (limited to 'source/blender/compositor/operations/COM_ReadBufferOperation.h')
-rw-r--r-- | source/blender/compositor/operations/COM_ReadBufferOperation.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/source/blender/compositor/operations/COM_ReadBufferOperation.h b/source/blender/compositor/operations/COM_ReadBufferOperation.h index 7e3ac147ee3..c8dcfb7c33d 100644 --- a/source/blender/compositor/operations/COM_ReadBufferOperation.h +++ b/source/blender/compositor/operations/COM_ReadBufferOperation.h @@ -29,6 +29,7 @@ class ReadBufferOperation : public NodeOperation { private: MemoryProxy *m_memoryProxy; + bool m_single_value; /* single value stored in buffer, copied from associated write operation */ unsigned int m_offset; MemoryBuffer *m_buffer; public: |