2017-12-23 5 views
-2

Ich bin zu opengl neu und ich versuche gerade, Strukturen in Angriff zu nehmen. Ich bekomme immer den Fehler 1282 (ungültige Operation), wenn ich glTextureParameteri() aufruft. Soweit ich das beurteilen kann, hat jede Ressource das genauso geschrieben. Dies ist das Code-Snippet, das mir Probleme bereitet.Wie benutzt man Texturen in opengl? (ungültiger Betriebsfehler: 1282)

 ImageLoader image("res/Textures/test.bmp"); 
     GLuint texture; 
     glGenTextures(1, &texture); 
     glBindTexture(GL_TEXTURE_2D, texture); 
     glTextureParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 
     glTextureParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 
     glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image.getWidth(), image.getHeight(), 0, GL_RGBA, GL_UNSIGNED_BYTE, image.getPixels()); 
     glBindTexture(GL_TEXTURE_2D, 0); 

Die Codefehler erscheint auf den Leitungen mit glTextureParameteri(). Was ist falsch/falsch mit der Art, wie ich das getan habe?

+0

[Referenzhandbuch] (https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glTexParameter.xhtml) listet diese Funktion nur als verfügbar ab OpenGL4.5 auf. Unterstützt das System, auf dem Sie dieses Programm ausführen, es? – VTT

+0

@ VTT Ja. Ich habe ein gtx 1060, das kürzlich etwas aktualisiert worden ist, und ich überprüfe gerade und das Programm, das ich geschrieben habe, läuft in opengl4.6.0. Auch habe ich gerade die ältere Funktion glTexParameteri() überprüft, und das scheint zu funktionieren – Jacques

Antwort

2

Die Funktionen glTextureParameter nehmen als erstes Argument ein Textur-Handle, kein Textur-Ziel. Die Parameter, die Sie verwenden, scheinen für die glTexParameter-Funktion zu sein. Diese beiden sind nicht identisch, Sie können also entweder die andere Funktion verwenden oder den Parameter ändern.