Ganz abgesehen davon, dass ich derjenige bin, der die Textur überhaupt erst erstellt hat, und ich genau wissen sollte, wie viele Mipmaps ich dafür geladen/erzeugt habe. Ich mache das für einen Unit-Test. Es scheint keine Möglichkeit zu geben glGetTexParameter
Parameter, um dies herauszufinden. Am ehesten komme ich mit so etwas zurecht:
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;
}
)
Wie auch immer, glGetTexLevelParameter()
gibt 0 width für eine nicht existierende mipmap zurück, wenn ich eine NVidia GPU verwende, aber mit Mesa gibt es GL_INVALID_VALUE
was mich zu der Annahme veranlasst, dass dies sehr wohl die Das Falsche zu tun .
Wie finde ich heraus, mit welchen Mipmap-Ebenen ich eine Textur bestückt habe?