1

gDebugger 向我展示了在应用程序中按维度分组创建的纹理。我还想计算从我的应用程序开始创建的纹理数量以检查纹理泄漏。我没有看到任何 OpenGl 函数直接返回创建的纹理 ID 的计数;计算应用程序中创建的纹理的最佳方法是什么?

4

1 回答 1

2

没有可以批量执行的 GL 函数,但仅出于调试目的,您可以简单地遍历所有“可能”的 id(因此是数字),并检查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,因此它可以拥有自己的镜像纹理注册表。

于 2013-09-23T09:10:50.387 回答