0

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 ビット リニア グレースケールに設定されており、それ以外の場合は問題なく動作します。

これについてあなたのアイデアを聞いてうれしい...

4

0 に答える 0