2013-09-23 3 views
1

gDebugger показывает мне текстуры, созданные в группировке приложений по размеру. Я хочу также подсчитать количество текстур, созданных с момента запуска в моем приложении, чтобы проверить утечку текстур. Я не видел, чтобы какая-либо функция OpenGl возвращала количество созданных идентификаторов текстур, и что является лучшим способом подсчета текстур, созданных в приложении?подсчет текстур, созданных группировкой по 1d, 2d, 3d в OpenGL

ответ

2

Там нет функции GL, что бы сделать это в пакетном режиме, но только для отладки, вы можете просто перебирать все «возможное» удостоверение личности (таким образом, число), и проверить с glIsTexture:

const unsigned reasonably_big_value = 100000; 
for (unsigned i = 0; i < reasonably_big_value; ++i) { 
    if (glIsTexture(i)) { 
     // count it somehow 
    } 
} 

Там в никоим образом, по крайней мере, я не знаю, получить размерность текстуры во время выполнения. glGetTexLevelParameter требует параметра target, поэтому вы сами по себе.

gDEBugger действует как посредник и отслеживает все вызовы GL, IIRC, поэтому он может иметь свой собственный реестр зеркальной текстуры.

+0

Сделать glGentexture Создать текстуру с наименьшим свободным идентификатором? Этот код можно использовать, когда glGentexture Создает текстуру с наименьшим свободным идентификатором. –

+0

Это не * требуется *, я думаю, но почти все реализации выделяют последовательные числа, начиная с 1. –

+0

Мой вопрос: если у меня есть пример 1,2,3,4,5, и удалить 3 может я убедитесь, что тогда следующий общий идентификатор равен 3? –

Смежные вопросы