현재 응용 프로그램에서 색상 피킹을 사용하고 있습니다. 이것은 PC에서 작동하지만 다양한 장치에서 작동하도록하는 데 문제가 있습니다.픽셀 색상이 정확하지 않습니다.
이것은 아마도 장치에 따라 컨텍스트가 다르게 설정 되었기 때문일 수 있습니다. 예를 들어, 내가 아는 한 PC는 888 색으로 설정되어 있지만 장치는 565로 기본 설정 될 수 있습니다.
OpenGL에서 현재 픽셀/색상 형식을 얻는 방법이 있는지 궁금 해서요. 그래서 색 데이터를 올바르게 검색 할 수 있습니까?
이있는 PC에서 잘 작동 내가 사용 기능 :
inline void ProcessColourPick(GLubyte *out, KDfloat32 x, KDfloat32 y)
{
GLint viewport[4];
GLubyte pixel[3];
glGetIntegerv(GL_VIEWPORT,viewport);
//Read colour of pixel at a specific point in the framebuffer
glReadPixels(x,viewport[3]-y,1,1,
GL_RGB,GL_UNSIGNED_BYTE,(void *)pixel);
out[0] = pixel[0];
out[1] = pixel[1];
out[2] = pixel[2];
}
어떤 아이디어?