Wie verwenden Sie Texturen mit direktem Statuszugriff in OpenGL?
Ich habe Folgendes in meinem Code, was zu funktionieren scheint:
GLuint textureHandle;
glGenTextures(1, &textureHandle);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, textureHandle);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, imageW, imageH, 0, GL_RGBA, GL_UNSIGNED_BYTE, image_data);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
Wenn ich es jedoch durch Folgendes ersetze, wird alles nur schwarz:
GLuint textureHandle;
glActiveTexture(GL_TEXTURE0);
glCreateTextures(GL_TEXTURE_2D, 1, &textureHandle);
glTextureImage2DEXT(textureHandle, GL_TEXTURE_2D, 0, GL_RGBA8, imageW, imageH, 0, GL_RGBA, GL_UNSIGNED_BYTE, image_data);
glTextureParameteri(textureHandle, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glCreateTextures
ist spezifisch für die ARB_DSA-Funktion. Er verwendet eine seltsame Mischung aus beiden, wahrscheinlich weil erglTextureImage2D
in der ARB-Version keine finden konnte (da der ARB nicht unveränderliche Texturen entmutigen möchte).