次の方法で共有


PIXELFORMATDESCRIPTOR 構造体 (wingdi.h)

PIXELFORMATDESCRIPTOR 構造体は、描画サーフェイスのピクセル形式を表します。

構文

typedef struct tagPIXELFORMATDESCRIPTOR {
  WORD  nSize;
  WORD  nVersion;
  DWORD dwFlags;
  BYTE  iPixelType;
  BYTE  cColorBits;
  BYTE  cRedBits;
  BYTE  cRedShift;
  BYTE  cGreenBits;
  BYTE  cGreenShift;
  BYTE  cBlueBits;
  BYTE  cBlueShift;
  BYTE  cAlphaBits;
  BYTE  cAlphaShift;
  BYTE  cAccumBits;
  BYTE  cAccumRedBits;
  BYTE  cAccumGreenBits;
  BYTE  cAccumBlueBits;
  BYTE  cAccumAlphaBits;
  BYTE  cDepthBits;
  BYTE  cStencilBits;
  BYTE  cAuxBuffers;
  BYTE  iLayerType;
  BYTE  bReserved;
  DWORD dwLayerMask;
  DWORD dwVisibleMask;
  DWORD dwDamageMask;
} PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;

メンバー

nSize

このデータ構造のサイズを指定します。 この値は sizeof(PIXELFORMATDESCRIPTOR) に設定する必要があります。

nVersion

このデータ構造のバージョンを指定します。 この値は 1 に設定する必要があります。

dwFlags

ピクセル バッファーのプロパティを指定するビット フラグのセット。 プロパティは一般に相互に排他的ではありません。ビット フラグの任意の組み合わせを設定できます。ただし、例外が示されています。 次のビット フラグ定数が定義されています。

意味
PFD_DRAW_TO_WINDOW
0x00000004
バッファーは、ウィンドウまたはデバイスサーフェイスに描画できます。
PFD_DRAW_TO_BITMAP
0x00000008
バッファーはメモリ ビットマップに描画できます。
PFD_SUPPORT_GDI
0x00000010
バッファーは GDI 描画をサポートしています。 このフラグとPFD_DOUBLEBUFFERは、現在のジェネリック実装では相互に排他的です。
PFD_SUPPORT_OPENGL
0x00000020
バッファーは OpenGL 描画をサポートしています。
PFD_GENERIC_ACCELERATED
0x00001000
ピクセル形式は、汎用実装を高速化するデバイス ドライバーでサポートされています。 このフラグがクリアされ、PFD_GENERIC_FORMAT フラグが設定されている場合、ピクセル形式は汎用実装でのみサポートされます。
PFD_GENERIC_FORMAT
0x00000040
ピクセル形式は、汎用実装とも呼ばれる GDI ソフトウェア実装でサポートされています。 このビットが明確な場合、ピクセル形式はデバイス ドライバーまたはハードウェアでサポートされます。
PFD_NEED_PALETTE
0x00000080
バッファーは、パレットで管理されたデバイスで RGBA ピクセルを使用します。 このピクセル タイプに最適な結果を得るには、論理パレットが必要です。 パレットの色は、cRedBits、cRedShiftcGreenBitscGreenShiftcBluebitsおよび cBlueShift メンバーの値に従って指定する必要があります。 wglMakeCurrent を呼び出す前に、デバイス コンテキストでパレットを作成して実現する必要があります。
PFD_NEED_SYSTEM_PALETTE
0x00000100
256 色モードでのみ 1 つのハードウェア パレットをサポートするハードウェアのピクセル形式記述子で定義されます。 このようなシステムでハードウェア アクセラレーションを使用するには、RGBA モードの場合はハードウェア パレットが固定順序 (3-3-2 など) であるか、カラー インデックス モードの場合は論理パレットと一致する必要があります。このフラグが設定されている場合は、プログラムで SetSystemPaletteUse を呼び出して、論理パレットとシステム パレットの 1 対 1 のマッピングを強制する必要があります。 OpenGL ハードウェアが複数のハードウェア パレットをサポートしており、デバイス ドライバーが OpenGL 用の予備のハードウェア パレットを割り当てることができる場合、このフラグは通常明確です。

このフラグは、汎用ピクセル形式では設定されません。

PFD_DOUBLEBUFFER
0x00000001
バッファーは 2 つのバッファーに格納されます。 このフラグとPFD_SUPPORT_GDIは、現在のジェネリック実装では相互に排他的です。
PFD_STEREO
0x00000002
バッファーはステレオスコピックです。 このフラグは、現在のジェネリック実装ではサポートされていません。
PFD_SWAP_LAYER_BUFFERS
0x00000800
デバイスが、ダブルバッファーオーバーレイまたはアンダーレイ平面を含むピクセル形式で個々のレイヤープレーンをスワップできるかどうかを示します。 それ以外の場合、すべてのレイヤー プレーンがグループとして一緒にスワップされます。 このフラグを設定すると、 wglSwapLayerBuffers がサポートされます。
 

ChoosePixelFormat を呼び出すときに、次のビット フラグを指定できます。

意味
PFD_DEPTH_DONTCARE
0x20000000
要求されたピクセル形式は、深度バッファーを持つか持たないかのどちらかになります。 深度バッファーのないピクセル形式を選択するには、このフラグを指定する必要があります。 要求されたピクセル形式は、深度バッファーの有無にかかわらず指定できます。 それ以外の場合は、深度バッファーを持つピクセル形式のみが考慮されます。
PFD_DOUBLEBUFFER_DONTCARE
0x40000000
要求されたピクセル形式は、単一バッファーまたはダブルバッファーのいずれかです。
PFD_STEREO_DONTCARE
0x80000000
要求されたピクセル形式は、単視的または立体的にすることができます。
 

glAddSwapHintRectWIN 拡張関数を使用すると、PIXELFORMATDESCRIPTOR ピクセル形式構造に対して 2 つの新しいフラグが含まれます。

意味
PFD_SWAP_COPY
0x00000400
バッファー スワップの後に、ダブル バッファーメインカラー プレーン内のバック バッファーの内容を指定します。 カラー バッファーをスワップすると、バック バッファーの内容がフロント バッファーにコピーされます。 バック バッファーの内容は、スワップの影響を受けません。 PFD_SWAP_COPYはヒントのみであり、ドライバーによって提供されない場合があります。
PFD_SWAP_EXCHANGE
0x00000200
バッファー スワップの後に、ダブル バッファーメインカラー プレーン内のバック バッファーの内容を指定します。 カラー バッファーをスワップすると、バック バッファーのコンテンツがフロント バッファーのコンテンツと交換されます。 スワップの後、バック バッファーのコンテンツには、スワップ前のフロント バッファーのコンテンツが含まれます。 PFD_SWAP_EXCHANGEはヒントのみであり、ドライバーによって提供されない場合があります。

iPixelType

ピクセル データの種類を指定します。 次の型が定義されています。

意味
PFD_TYPE_RGBA
0
RGBA ピクセル。 各ピクセルには、赤、緑、青、アルファの 4 つのコンポーネントがあります。
PFD_TYPE_COLORINDEX
1
色インデックスのピクセル。 各ピクセルは、色インデックス値を使用します。

cColorBits

各カラー バッファー内のカラー ビットプレーンの数を指定します。 RGBA ピクセル タイプの場合、アルファ ビットプレーンを除くカラー バッファーのサイズです。 色インデックス ピクセルの場合は、色インデックス バッファーのサイズです。

cRedBits

各 RGBA カラー バッファー内の赤いビットプレーンの数を指定します。

cRedShift

各 RGBA カラー バッファー内の赤いビットプレーンのシフト数を指定します。

cGreenBits

各 RGBA カラー バッファー内の緑色のビットプレーンの数を指定します。

cGreenShift

各 RGBA カラー バッファーの緑色のビットプレーンのシフト数を指定します。

cBlueBits

各 RGBA カラー バッファー内の青いビットプレーンの数を指定します。

cBlueShift

各 RGBA カラー バッファーの青いビットプレーンのシフト数を指定します。

cAlphaBits

各 RGBA カラー バッファー内のアルファ ビットプレーンの数を指定します。 アルファ ビットプレーンはサポートされていません。

cAlphaShift

各 RGBA カラー バッファー内のアルファ ビットプレーンのシフト数を指定します。 アルファ ビットプレーンはサポートされていません。

cAccumBits

累積バッファー内のビットプレーンの合計数を指定します。

cAccumRedBits

累積バッファー内の赤いビットプレーンの数を指定します。

cAccumGreenBits

累積バッファー内の緑色のビットプレーンの数を指定します。

cAccumBlueBits

累積バッファー内の青いビットプレーンの数を指定します。

cAccumAlphaBits

累積バッファー内のアルファ ビットプレーンの数を指定します。

cDepthBits

深度 (z 軸) バッファーの深さを指定します。

cStencilBits

ステンシル バッファーの深さを指定します。

cAuxBuffers

補助バッファーの数を指定します。 補助バッファーはサポートされていません。

iLayerType

無視されます。 OpenGL の以前の実装ではこのメンバーが使用されていますが、使用されなくなりました。

bReserved

オーバーレイ平面とアンダーレイ平面の数を指定します。 ビット 0 から 3 は最大 15 個のオーバーレイ プレーンを指定し、ビット 4 から 7 は最大 15 個のアンダーレイプレーンを指定します。

dwLayerMask

無視されます。 OpenGL の以前の実装ではこのメンバーが使用されていますが、使用されなくなりました。

dwVisibleMask

アンダーレイ平面の透明な色またはインデックスを指定します。 ピクセルの種類が RGBA の場合、 dwVisibleMask は透明な RGB カラー値です。 ピクセルの種類がカラー インデックスの場合は、透明なインデックス値になります。

dwDamageMask

無視されます。 OpenGL の以前の実装ではこのメンバーが使用されていますが、使用されなくなりました。

注釈

前述のように、特定のピクセル形式のプロパティは現在のジェネリック実装ではサポートされていないことに注意してください。 一般的な実装は、OpenGL の Microsoft GDI ソフトウェア実装です。 ハードウェア製造元は、OpenGL の一部を強化し、汎用実装でサポートされていないピクセル形式のプロパティをサポートする場合があります。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
Header wingdi.h

こちらもご覧ください

ChoosePixelFormat

DescribePixelFormat

GetPixelFormat

Windows 上の OpenGL

SetPixelFormat

構造体