我目前在我的应用程序中使用颜色选择。 这适用于个人电脑,但我很难让它在各种设备上工作。获取像素颜色不准确
这可能是由于上下文设置不同,具体取决于设备。例如,据我所知,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];
}
任何想法?