Никогда не думайте, что я тот, кто создал текстуру в первую очередь, и я должен прекрасно знать, сколько mipmaps я загрузил/сгенерировал для нее. Я делаю это для unit test. Кажется, что параметр 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()
вернет 0 ширину для несуществующего mipmap, если я использую NVidia GPU, но с Mesa, он возвращает GL_INVALID_VALUE
, что заставляет меня поверить, что это очень неправильная вещь.
Как узнать, какие уровни mipmap я заполнил текстурой?