私は現在、自分のアプリケーションでカラーピッキングを使用しています。 これは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];
}
任意のアイデア?