Я установил фреймбуфер с 4-цветным вложением и 1 вложением глубины + трафарет. Я могу сделать недействительными 4 цветных вложения с помощью glInvalidateFramebuffer, но это не удается с 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 цветными насадками.
Задача ещё не решена.
Других решений пока нет …