0
私は、GL_TEXTURE_RECTANGLE_ARBに限られており、ミップマッピングをサポートしていないIOSurfaceに基づいたテクスチャを持っています。このテクスチャをGL_TEXTURE_2Dにバインドされた別のテクスチャにコピーして、その代わりにそのミップマップを実行しようとしています。しかし、私は自分のテクスチャをコピーする際に問題があります。私はそれを別のGL_TEXTURE_RECTANGLE_ARBにコピーするだけで作業することさえできません。ここに私のコードは次のとおりです。あなたの第二glFramebufferTexture2D()
のあるターゲットから別のターゲットに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にコピーするだけに戻っていますが、どちらもうまくいきません。だから私は迷っている。 テクスチャがこのようにしか表現できないIOSurfaceに由来するため、元のターゲットはGL_TEXTURE_RECTANGLE_ARBである必要があります。 – Oskar