У меня есть текстура с поддержкой IOSurface, которая ограничена GL_TEXTURE_RECTANGLE_ARB и не поддерживает mipmapping. Я пытаюсь скопировать эту текстуру в другую текстуру, привязанную к GL_TEXTURE_2D, а затем выполнить mipmapping на этом. Но у меня проблемы с копированием моей текстуры. Я даже не могу заставить его работать, просто скопировав его на другой GL_TEXTURE_RECTANGLE_ARB. Вот мой код:Скопировать текстуру OpenGL с одной цели на другую
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
Моя конечная цель - GL_TEXTURE_2D, но это тоже не работает. Поэтому я возвращаюсь к простому копированию в другой GL_TEXTURE_RECTANGLE_ARB, и это тоже не работает. Поэтому я в недоумении. Первоначальная цель должна быть GL_TEXTURE_RECTANGLE_ARB, потому что текстура от IOSurface, которая может быть представлена только таким образом. – Oskar