diff options
-rw-r--r-- | source/blender/compositor/intern/COM_Debug.cc | 12 | ||||
-rw-r--r-- | source/blender/compositor/intern/COM_MemoryBuffer.cc | 2 |
2 files changed, 8 insertions, 6 deletions
diff --git a/source/blender/compositor/intern/COM_Debug.cc b/source/blender/compositor/intern/COM_Debug.cc index 007085ee528..f2dcba65b7c 100644 --- a/source/blender/compositor/intern/COM_Debug.cc +++ b/source/blender/compositor/intern/COM_Debug.cc @@ -468,11 +468,13 @@ static std::string get_operations_export_dir() void DebugInfo::export_operation(const NodeOperation *op, MemoryBuffer *render) { - ImBuf *ibuf = IMB_allocFromBuffer(nullptr, - render->getBuffer(), - render->getWidth(), - render->getHeight(), - render->get_num_channels()); + const int width = render->getWidth(); + const int height = render->getHeight(); + const int num_channels = render->get_num_channels(); + + ImBuf *ibuf = IMB_allocImBuf(width, height, 8 * num_channels, IB_rectfloat); + MemoryBuffer mem_ibuf(ibuf->rect_float, 4, width, height); + mem_ibuf.copy_from(render, render->get_rect(), 0, num_channels, 0); const std::string file_name = operation_class_name(op) + "_" + std::to_string(op->get_id()) + ".png"; diff --git a/source/blender/compositor/intern/COM_MemoryBuffer.cc b/source/blender/compositor/intern/COM_MemoryBuffer.cc index 1fbf502fea6..5327be50b53 100644 --- a/source/blender/compositor/intern/COM_MemoryBuffer.cc +++ b/source/blender/compositor/intern/COM_MemoryBuffer.cc @@ -32,7 +32,7 @@ BLI_assert((buf)->get_rect().ymax >= (y) + BLI_rcti_size_y(&(area))) #define ASSERT_VALID_ELEM_SIZE(buf, channel_offset, elem_size) \ - BLI_assert((buf)->get_num_channels() <= (channel_offset) + (elem_size)) + BLI_assert((buf)->get_num_channels() >= (channel_offset) + (elem_size)) namespace blender::compositor { |