我设置了一个带有4色附件和1个深度+模板附件的帧缓冲器。我可以使用glInvalidateFramebuffer使4种颜色附件无效,但是对于深度+模板附件,它会失败GL_INVALID_ENUM
。
我不明白,因为GLES3文档说当目标不是有效的枚举时会生成无效的枚举,但显然GL_FRAMEBUFFER
是有效的。
以下是使颜色和深度+模板附件无效的代码:
glInvalidateFramebuffer(GL_FRAMEBUFFER, _draw_buffers.size(), _draw_buffers.begin());
const GLenum attachments[] = {GL_DEPTH_STENCIL_ATTACHMENT};
glInvalidateFramebuffer(GL_FRAMEBUFFER, 1, attachments);
_draw_buffers
是std::vector
,带有正确的4种颜色附件。