次の方法で共有


glPixelTransferi 関数

glPixelTransferf 関数と glPixelTransferi 関数は、ピクセル転送モードを設定します。

構文

void WINAPI glPixelTransferi(
   GLenum pname,
   GLint  param
);

パラメーター

pname

設定するピクセル転送パラメーターのシンボリック名。 次の表は、 glPixelTransfer で設定される各ピクセル転送パラメーターの有効な値の種類、初期値、および範囲を示しています。

Pname 初期値 有効範囲
GL_MAP_COLOR Boolean false true/false
GL_MAP_STENCIL Boolean false true/false
GL_INDEX_SHIFT 整数 (integer) 0 (8,8)
GL_INDEX_OFFSET 整数 (integer) 0 (8,8)
GL_RED_SCALE 整数 (integer) 1.0 (8,8)
GL_GREEN_SCALE float 1.0 (8,8)
GL_BLUE_SCALE float 1.0 (8,8)
GL_ALPHA_SCALE float 1.0 (8,8)
GL_DEPTH_SCALE float 1.0 (8,8)
GL_RED_BIAS float 0.0 (8,8)
GL_GREEN_BIAS float 0.0 (8,8)
GL_BLUE_BIAS float 0.0 (8,8)
GL_ALPHA_BIAS float 0.0 (8,8)
GL_DEPTH_BIAS float 0.0 (8,8)

param

pname が設定されている値。

戻り値

この関数は値を返しません。

注釈

glPixelTransfer 関数は、後続の glCopyPixelsglCopyTexImage1D、glCopyTexImage2DglCopyTexSubImage1DglCopyTexSubImage2DglDrawPixels、glReadPixelsglTexImage1D、glTexImage2DglTexSubImage1Dおよび glTexSubImage2D コマンドの操作に影響するピクセル転送モードを設定します。 ピクセル転送モードで指定されたアルゴリズムは、フレームバッファー (glReadPixelsglCopyPixels) から読み取られた後、またはクライアント メモリ (glDrawPixelsglTexImage1Dおよび glTexImage2D) からアンパックされた後、ピクセルで動作します。 ピクセル転送操作は、ピクセル操作の結果のコマンドに関係なく、同じ順序で、同じ方法で行われます。 ピクセル ストレージ モード (glPixelStore) は、クライアント メモリから読み取られるピクセルのアンパックと、クライアント メモリに書き戻されるピクセルのパッキングを制御します。

ピクセル転送操作では、 色インデックス深度、ステンシルの 4 つの基本的なピクセルの種類が処理 されます。色ピクセルは、仮数と指数のサイズが指定されていない 4 つの浮動小数点値で構成され、0.0 がゼロの強度を表し、1.0 が完全な強度を表すようスケーリングされます。 カラー インデックスは、1 つの固定小数点値で構成され、二項点の右側に精度が指定されていません。 深度ピクセルは、0.0 が最小深度バッファー値を表し、1.0 が最大深度バッファー値を表すようスケーリングされた、未指定の仮数と指数サイズを持つ 1 つの浮動小数点値で構成されます。 最後に、ステンシル ピクセルは 1 つの固定小数点値で構成され、バイナリ ポイントの右側に精度が指定されていません。

4 種類の基本的なピクセルに対して実行されるピクセル転送操作は次のとおりです。

ピクセルの種類 ピクセル転送操作
Color 4 つの色成分のそれぞれにスケール 係数が乗算され、バイアス係数に加算されます。 つまり、赤い成分はGL_RED_SCALE乗算され、GL_RED_BIASに追加されます。緑色のコンポーネントにGL_GREEN_SCALEを掛けてから、GL_GREEN_BIASに追加します。青い成分はGL_BLUE_SCALE乗算され、GL_BLUE_BIASに追加されます。アルファ成分にGL_ALPHA_SCALEを掛け、GL_ALPHA_BIASに加算します。 4 つの色成分すべてがスケーリングされ、バイアスされた後、それぞれが [0,1] の範囲にクランプされます。 すべてのカラー スケールとバイアス値は glPixelTransfer で指定されます。
GL_MAP_COLORが true の場合、各カラー コンポーネントは対応するカラーツーカラー マップのサイズでスケーリングされ、スケールされたコンポーネントによってインデックス付けされたそのマップの内容に置き換えられます。 つまり、赤のコンポーネントはGL_PIXEL_MAP_R_TO_R_SIZEでスケーリングされ、それ自体でインデックスが付GL_PIXEL_MAP_R_TO_Rの内容に置き換えられます。 緑色のコンポーネントは、GL_PIXEL_MAP_G_TO_G_SIZEによってスケーリングされ、それ自体でインデックスが付GL_PIXEL_MAP_G_TO_Gの内容に置き換えられます。 青いコンポーネントは、GL_PIXEL_MAP_B_TO_B_SIZEによってスケーリングされ、それ自体でインデックスが付GL_PIXEL_MAP_B_TO_Bの内容に置き換えられます。 アルファ コンポーネントは、GL_PIXEL_MAP_A_TO_A_SIZEによってスケーリングされ、それ自体でインデックスが付GL_PIXEL_MAP_A_TO_Aの内容に置き換えられます。 マップから取得されたすべてのコンポーネントは、範囲 [0,1] にクランプされます。 GL_MAP_COLORは glPixelTransfer で指定されます。 さまざまなマップの内容は glPixelMap で指定されます。
色のインデックス 各カラー インデックスは、GL_INDEX_SHIFT ビットだけ左にシフトされ、固定小数点インデックスによって運ばれる分数ビット数を超える任意のビットをゼロで埋めます。 GL_INDEX_SHIFTが負の場合、シフトは右に移動し、もう一度ゼロを塗りつぶします。 GL_INDEX_OFFSETがインデックスに追加されます。 GL_INDEX_SHIFTとGL_INDEX_OFFSETは glPixelTransfer で指定されます。
この時点から、結果のピクセルの必要な形式に応じて操作が分岐します。 結果のピクセルをカラー インデックス バッファーに書き込む場合、またはGL_COLOR_INDEX形式でクライアント メモリに読み取り戻される場合、ピクセルは引き続きインデックスとして扱われます。 GL_MAP_COLORが true の場合、各インデックスは 2 ^ n 1 でマスクされ、 n はGL_PIXEL_MAP_I_TO_I_SIZEされ、マスクされた値によってインデックスが付GL_PIXEL_MAP_I_TO_Iの内容に置き換えられます。 GL_MAP_COLORは glPixelTransfer で指定されます。 インデックス マップの内容は glPixelMap で指定されます。
結果のピクセルを RGBA カラー バッファーに書き込む場合、またはクライアント メモリにGL_COLOR_INDEX以外の形式で読み取り戻される場合、ピクセルは 4 つのマップ GL_PIXEL_MAP_I_TO_Rを参照してインデックスから色に変換GL_PIXEL_MAP_I_TO_G GL_PIXEL_MAP_I_TO_B、GL_PIXEL_MAP_I_TO_A。 逆参照される前に、インデックスは 2 n 1 でマスクされます。ここで、n は赤いマップにGL_PIXEL_MAP_I_TO_R_SIZE、緑のマップのGL_PIXEL_MAP_I_TO_G_SIZE、青いマップのGL_PIXEL_MAP_I_TO_B_SIZE、アルファ マップのGL_PIXEL_MAP_I_TO_A_SIZEです。 マップから取得されたすべてのコンポーネントは、範囲 [0,1] にクランプされます。 4 つのマップの内容は glPixelMap で指定されます。
奥行 各深度値にGL_DEPTH_SCALEを掛け、GL_DEPTH_BIASに加算し、範囲 [0,1] にクランプします。
Stencil 各インデックスは、カラー インデックスと同様にビットGL_INDEX_SHIFTシフトされ、GL_INDEX_OFFSETに追加されます。 GL_MAP_STENCILが true の場合、各インデックスは 2n 1 でマスクされ、 n はGL_PIXEL_MAP_S_TO_S_SIZEされ、マスクされた値によってインデックスが付GL_PIXEL_MAP_S_TO_Sの内容に置き換えられます。

glPixelTransferf 関数を使用して、ピクセル転送パラメーターを設定できます。 パラメーター型が Boolean の場合、0.0 は false を意味し、その他の値は true を意味します。 pname が整数パラメーターの場合、param は最も近い整数に丸められます。

同様に、 glPixelTransferi を使用して、ピクセル転送パラメーターのいずれかを設定することもできます。 パラメーターが 0 の場合はブール値パラメーターが false に設定され、それ以外の場合は true に設定されます。 param パラメーターは、実際の値パラメーターに割り当てられる前に浮動小数点に変換されます。

glDrawPixelsglReadPixelsglCopyPixelsglTexImage1D、または glTexImage2D コマンドが表示リストに配置されている場合 (glNewList および glCallList を参照)、表示リストの実行時に有効になるピクセル転送モードの設定は使用されます。 コマンドが表示リストにコンパイルされたときの設定とは異なる場合があります。

次の関数は 、glPixelTransfer に関連する情報を取得します。

引数GL_MAP_COLORを含む glGet

引数GL_MAP_STENCILを含む glGet

引数GL_INDEX_SHIFTを含む glGet

引数GL_INDEX_OFFSETを含む glGet

引数GL_RED_SCALEを含む glGet

引数GL_RED_BIASを含む glGet

引数GL_GREEN_SCALEを含む glGet

引数GL_GREEN_BIASを含む glGet

引数GL_BLUE_SCALEを含む glGet

引数GL_BLUE_BIASを含む glGet

引数GL_ALPHA_SCALEを含む glGet

引数GL_ALPHA_BIASを含む glGet

引数GL_DEPTH_SCALEを含む glGet

引数GL_DEPTH_BIASを含む glGet

要件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
Gl.h
ライブラリ
Opengl32.lib
[DLL]
Opengl32.dll

関連項目

glBegin

glCallList

glCopyPixels

glDrawPixels

glEnd

glNewList

glPixelMap

glPixelStore

glPixelZoom

glReadPixels

glTexImage1D

glTexImage2D