Когда glIsTexture полезен - PullRequest
0 голосов
/ 29 мая 2020

Вот пример последовательности команд opengl:

glGenTextures(1, &texId);
std::cout << (int)glIsTexture(texId) << std::endl; //0
glBindTexture(GL_TEXTURE_2D, texId);
std::cout << (int)glIsTexture(texId) << std::endl; //1
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, img.getWidth(), img.getHeight(), 
             0, GL_BGR, GL_UNSIGNED_BYTE, img.accessPixels()); //when data == 0 glIsTexture returns the same results
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glBindTexture(GL_TEXTURE_2D, 0);
std::cout << (int)glIsTexture(texId) << std::endl; //1
glDeleteTextures(1, &texId);
std::cout << (int)glIsTexture(texId) << std::endl; //0

Интересно, когда пригодится функция glIsTexture? Похоже, что основное использование - проверка, была ли удалена текстура. glIsTexture также возвращает false, если текстура была сгенерирована, но не привязана и не инициализирована. Знаете ли вы какой-нибудь другой сценарий ios?

1 Ответ

0 голосов
/ 29 мая 2020

Интересно, когда пригодится функция glIsTexture? Похоже, что основное использование - это проверка того, была ли текстура удалена. ).

Я предполагаю, что дизайнеры посчитали, что раскрытие состояния идентификатора текстуры может быть полезно либо для отладки, либо для реализации какого-то пула текстур.

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