OpenGL ES 2.0 glDeleteFramebuffers после рисования на текстуру - PullRequest
0 голосов
/ 22 мая 2019

Я рендеринг в текстуру, используя кадровый буфер. Но я не уверен, когда я должен правильно использовать glDeleteFramebuffers. Если fbo существует, пока существует текстура, или я могу безопасно вызывать glDeleteFramebuffers после последнего рисования текстуры.

1 Ответ

0 голосов
/ 22 мая 2019

Вы можете безопасно вызывать glDeleteFramebuffers после последнего рисования текстуры. Тем не менее, я бы работал в предположении, что создание и уничтожение кадровых буферов стоит дорого, поэтому я сделал бы это, только если бы знал, что больше не буду рендерить эту текстуру.

У меня возникли ошибки в некоторых драйверах Android GLES, когда мне пришлось отсоединить текстуру от буфера кадров перед удалением буфера кадров, поэтому я рекомендую вам сделать это в качестве меры предосторожности:

glBindFramebuffer(GL_FRAMEBUFFER, frameBuffer);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 0, 0);
...