我目前在我的應用程序中使用顏色選擇。 這適用於個人電腦,但我很難讓它在各種設備上工作。獲取像素顏色不準確
這可能是由於上下文設置不同,具體取決於設備。例如,據我所知,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];
}
任何想法?