Как проверить, связана ли текстура в OpenGL ES - PullRequest
1 голос
/ 23 апреля 2010

В OpenGL ES есть способ проверить, привязана ли текстура в данный момент, чтобы избежать накладных расходов при изменении состояния в glBindTexture()?glAreTexturesResident(), кажется, то, что я хочу, но это не определено в реализации iPhone ES1 / ES2.

Ответы [ 2 ]

0 голосов
/ 28 июня 2012
    GLint textureBinding;
    glGetIntegerv(GL_TEXTURE_BINDING_2D, &textureBinding);

glActiveTexture () возвращает активный текстурный блок, а не привязку.

0 голосов
/ 29 апреля 2011

GLES2 предоставляет glActiveTexture (), но самый простой способ определить, связывали ли вы ранее определенную текстуру, это просто отслеживать, какая у вас последняя связанная текстура, и вызывать glBindTexture только в том случае, если текстуру вы хотите визуализировать. отличается.

Еще одна вещь, которую вы могли бы рассмотреть, это сортировка ваших объектов по дескриптору текстуры, что еще больше минимизирует изменения вашего состояния, поскольку вы можете быть уверены, что вы рендерите все свои примитивы в смежные блоки соответствующего состояния текстуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...