Ich habe eine IOSurface-Backed-Textur, die auf GL_TEXTURE_RECTANGLE_ARB beschränkt ist und Mipmapping nicht unterstützt. Ich versuche, diese Textur in eine andere Textur zu kopieren, die an GL_TEXTURE_2D gebunden ist, und führe dann stattdessen ein Mipmapping durch. Aber ich habe Probleme, meine Textur zu kopieren. Ich kann es nicht einmal zum Laufen bringen, indem ich es einfach in ein anderes GL_TEXTURE_RECTANGLE_ARB kopiere. Hier ist mein Code:OpenGL-Textur von einem Ziel in ein anderes kopieren
var arbTexture = GLuint()
glGenTextures(1, &arbTexture)
/* Do some stuff to fill arbTexture with image data */
glEnable(GLenum(GL_TEXTURE_RECTANGLE_ARB))
glBindTexture(GLenum(GL_TEXTURE_RECTANGLE_ARB), arbTexture)
// At this point, if I return here, my arbTexture draws just fine
// Trying to copy to another texture (fbo and texture generated previously):
glBindFramebuffer(GLenum(GL_FRAMEBUFFER), fbo);
glFramebufferTexture2D(GLenum(GL_READ_FRAMEBUFFER), GLenum(GL_COLOR_ATTACHMENT0), GLenum(GL_TEXTURE_RECTANGLE_ARB), arbTexture, 0)
glFramebufferTexture2D(GLenum(GL_DRAW_FRAMEBUFFER), GLenum(GL_COLOR_ATTACHMENT1), GLenum(GL_TEXTURE_RECTANGLE_ARB), texture, 0)
glDrawBuffer(GLenum(GL_COLOR_ATTACHMENT1))
glBlitFramebuffer(0, 0, GLsizei(width), GLsizei(height), 0, 0, GLsizei(width), GLsizei(height), GLbitfield(GL_COLOR_BUFFER_BIT)
, GLenum(GL_NEAREST))
glBindTexture(GLenum(GL_TEXTURE_RECTANGLE_ARB), texture)
// At this point, the texture is all black
Mein Endziel ist ein GL_TEXTURE_2D, aber das funktioniert auch nicht. Ich werde also einfach zu einem anderen GL_TEXTURE_RECTANGLE_ARB kopieren und das funktioniert auch nicht. Also bin ich ratlos. Das ursprüngliche Ziel muss GL_TEXTURE_RECTANGLE_ARB sein, da die Textur von einer IOS-Oberfläche stammt, die nur auf diese Weise dargestellt werden kann. – Oskar