Глядя на документы, я смогу использовать BGRA для внутреннего формата текстуры.Я предоставляю текстуру с данными BGRA (используя GL_RGBA8_OES для glRenderbufferStorage, так как кажется, что BGRA там не разрешен).Тем не менее, следующее не работает:
glTexImage2D(GL_TEXTURE_2D, 0, **GL_BGRA**, w, h, 0, GL_BGRA, GL_UNSIGNED_BYTE, buffer);
...
glReadPixels(0, 0, w,h, GL_BGRA, GL_UNSIGNED_BYTE,buffer, 0);
Хотя это дает мне черную рамку:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_BGRA, GL_UNSIGNED_BYTE, buffer);
...
glReadPixels(0, 0, w,h, **GL_BGRA**, GL_UNSIGNED_BYTE,buffer, 0);
И это работает, но блюз / красный инвертированы (я поставляю BGRAданные в текстуру):
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,w, h, 0, GL_BGRA, GL_UNSIGNED_BYTE, buffer);
...
glReadPixels(0, 0, w,h, **GL_RGBA**, GL_UNSIGNED_BYTE,buffer, 0);
... почему я не могу просто использовать BGRA везде?Я заметил, что glRenderbufferStorage не поддерживает форматы BGRA ... Я действительно запутался.BGRA - единственный подходящий формат, в котором хранятся мои данные, поскольку он поступает с камеры iphone.