没关系,我是第一个创建纹理的人,我应该非常清楚我为它加载/生成了多少个 mipmap。我这样做是为了进行单元测试。似乎没有glGetTexParameter
参数可以找出这一点。我最接近的是这样的:
int max_level;
glGetTexParameter( GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, &max_level );
int max_mipmap = -1;
for ( int i = 0; i < max_level; ++i )
{
int width;
glGetTexLevelParameter( GL_TEXTURE_2D, i, GL_TEXTURE_WIDTH, &width );
if ( 0 == width )
{
max_mipmap = i-1;
break;
}
)
无论如何,glGetTexLevelParameter()
如果我使用 NVidia GPU,将为不存在的 mipmap 返回 0 宽度,但使用 Mesa,它会返回GL_INVALID_VALUE
,这让我相信这是非常错误的事情。
如何找出我填充了纹理的 mipmap 级别?