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:
authorClément Foucault <foucault.clem@gmail.com>2022-01-27 18:13:44 +0300
committerClément Foucault <foucault.clem@gmail.com>2022-01-27 18:13:49 +0300
commit6c483479b82fc4795f71e0edfcb691b2e7074b29 (patch)
tree34403db6352c7ad1890660df22ce2f4ea1b890a3
parentc85c52f2ce478ab0e30c5e93fd5a5cb812db232f (diff)
GLFramebuffer: Add assert to check if framebuffer has the expected data
It came to light that there is no error checking when trying to read a framebuffer plane without anything attached to it.
-rw-r--r--source/blender/gpu/opengl/gl_framebuffer.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/gpu/opengl/gl_framebuffer.cc b/source/blender/gpu/opengl/gl_framebuffer.cc
index 13f03195437..106a12bfefd 100644
--- a/source/blender/gpu/opengl/gl_framebuffer.cc
+++ b/source/blender/gpu/opengl/gl_framebuffer.cc
@@ -429,8 +429,15 @@ void GLFrameBuffer::read(eGPUFrameBufferBits plane,
switch (plane) {
case GPU_DEPTH_BIT:
format = GL_DEPTH_COMPONENT;
+ BLI_assert_msg(
+ this->attachments_[GPU_FB_DEPTH_ATTACHMENT].tex != nullptr ||
+ this->attachments_[GPU_FB_DEPTH_STENCIL_ATTACHMENT].tex != nullptr,
+ "GPUFramebuffer: Error: Trying to read depth without a depth buffer attached.");
break;
case GPU_COLOR_BIT:
+ BLI_assert_msg(
+ mode != GL_NONE,
+ "GPUFramebuffer: Error: Trying to read a color slot without valid attachment.");
format = channel_len_to_gl(channel_len);
/* TODO: needed for selection buffers to work properly, this should be handled better. */
if (format == GL_RED && type == GL_UNSIGNED_INT) {