我正在尝试将GL_TEXTURE_2D
的内容转换为RGBA字节数组。
这是我的代码:
void save(void* textureHandle, int width, int height){
GLubyte *pixels = new GLubyte[width * height * 4];
GLuint gltex = (GLuint)(size_t)(textureHandle);
glBindTexture(GL_TEXTURE_2D, gltex);
glGetTexImage(GL_TEXTURE_2D,
0,
GL_RGBA,
GL_UNSIGNED_BYTE,
pixels);
// Do fun stuff with pixels
}
textureHandle
由Unity传入,它说明了这一点:“在类似OpenGL的设备上,返回GL纹理”name“;将指针强制转换为整数类型以获取它”。
在我的脑海中,遵循此代码块pixels
应填充表示传入纹理的[r1, g1, b1, a1, r2, ...]
值。但是,整个数组只是[0,0,0,0...]
。为什么会发生这种情况?我该如何解决?