QUADS (ピクセル形式と内部形式の両方に GL_LUMINANCE を設定した glTexImage2D) を使用して、8 ビット ラスターをウィンドウに描画するサンプル コードがあります。
PFD は次のように初期化されました。
PIXELFORMATDESCRIPTOR pfd;
int iFormat;
hDC = GetDC( hWnd );
ZeroMemory( &pfd, sizeof( pfd ) );
pfd.nSize = sizeof( pfd );
pfd.nVersion = 1;
pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
pfd.iPixelType = PFD_TYPE_RGBA;
pfd.cColorBits = 8;
pfd.iLayerType = PFD_MAIN_PLANE;
iFormat = ChoosePixelFormat( hDC, &pfd );
SetPixelFormat( hDC, iFormat, &pfd );
そして、テクスチャは次のように初期化されました: glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexImage2D (GL_TEXTURE_2D, 0, GL_LUMINANCE, width, height, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, data);
マシンは、1 つの通常のカラー モニターと 2 つのモノクロ モニターに接続されている 1 つの Matrox カードで構成されます。
問題は、アプリケーションがカラー モニタにあるウィンドウの任意の部分に描画するが、モノクロ モニタでは空白になることです。これらは、コントロール パネルで 8 ビット リニア グレースケールに設定されており、それ以外の場合は問題なく動作します。
これについてあなたのアイデアを聞いてうれしい...