我有一个游戏,将 ABGR1555 类型的颜色值输出到帧缓冲区,到目前为止,我一直在使用 SDL2 进行图形处理(绘制纹理),并且它可以方便地选择处理颜色格式(SDL_PIXELFORMAT_ABGR1555),但我'我最近转向了 opengl 3,一切似乎都很顺利,除了当我尝试渲染纹理时,我在让 opengl 以 ABGR1555 的形式解释颜色值时遇到了麻烦。
这是我迄今为止尝试过的方法,但不起作用,我不确定我应该做什么
glPixelStorei(GL_UNPACK_SWAP_BYTES, GL_TRUE);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB5_A1, WIDTH, HEIGHT, 0, GL_RGBA, GL_UNSIGNED_SHORT_1_5_5_5, texture);
我希望 opengl 将帧缓冲区中的颜色值解释为 ABGR1555,即我想要 SDL_PIXELFORMAT_ABGR1555 的等效值,但我不知道如何到达那里。我非常感谢对此的帮助
在加载具有这种格式的 DDS 文件时刚刚遇到类似的问题,我能够使用以下参数使其工作:
像素内部格式:GL_BGRA 像素格式:GL_RGB5_A1 像素类型:UnsignedShort1555Reversed
必须先调用:glPixelStore(GL_UNPACK_ROW_LENGTH, Width);