我目前在我的应用程序中使用颜色选择。这适用于 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];
}
有任何想法吗?