2013-02-17 5 views
2

OpenGL ES 1.0 드라이버를 사용하여 Irrlicht를 사용하여 화면을 캡처하고 싶습니다. 여기 glReadPixels에서 예기치 않은 색상 형식 값을 반환하는 이유는 무엇입니까?

는 내 코드

glReadPixels(0, 0, 200, 200, GL_RGBA, GL_UNSIGNED_BYTE, pixels); 

대부분의 안드로이드 장치가 잘 작동 C++로 작성되었습니다. 그러나 안드로이드 2.2.3과 마일스톤은 예기치 않은 결과를 얻었습니다. 나는 RGBA 컬러 포맷을 원했고, 마일스톤은 BGRA 컬러를 반환했습니다. 마침내

, 내 코드

glReadPixels(0, 0, 200, 200, GL_BGRA, GL_UNSIGNED_BYTE, pixels); 

그러나 마일스톤 반환 RGBA 색상을 변경합니다.

나는 레드와 블루가 예기치 않은 이유가 무엇인지 궁금한가요? 적절한 이유는 무엇입니까?

답변

0

GL_BGRA은 OpenGL ES에서 not supported입니다. 아마도 그것은 당신이 암묵적으로 지원한다고 가정하는 약간의 확장 때문에 다른 장치에서 작동 할 것입니다.

이 경우 OpenGL에서 GL_INVALID_ENUM 오류 코드를 설정해야합니다. 그걸 확인 했니?

편집 : 잠시만 기다려주세요. 질문을 올바르게 읽지 않았습니다. 따라서 마일스톤은 GL_RGBAGL_BGRA의 결과를 교환하고 있습니까? 확장 기능에 상관없이 이상합니다.

+0

마일스톤은 화면에 모든 것을 올바르게 표시합니다. 그러나 glReadPixels()을 호출하면 파란색과 빨간색이 바뀝니다. – Leo