OpenGL glReadPixels получает ошибку 1282

Я хотел бы создать закадровый рендер с OpenGL.

Я создал FBO и RBO позвонить glReadPixels(), но я всегда получаю ошибку.

Это мой код:

// Init
GLuint fbo;
GLuint rbo;

glGenFramebuffers(1, &fbo);

glGenRenderbuffers(1, &rbo);
glBindRenderbuffer(GL_RENDERBUFFER, rbo);
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA8, width, height);

glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo);
glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, rbo);

glClearColor(0.0f, 1.0f, 1.0f, 1.0f);

// Render loop
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo);

...

std::vector<unsigned char> output(width * height * 4);
glReadBuffer(GL_COLOR_ATTACHMENT0);
glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, &output[0]);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);

// Deinit
glDeleteRenderbuffers(1, &rbp);
glDeleteFramebuffers(1, &fbo);

Вывод ничего не содержит и glGetError() функция всегда возвращает 1282 (GL_INVALID_OPERATION) после звонка glReadPixels(),

В чем проблема с этим кодом?

0 ответов

Другие вопросы по тегам