Share via


glPixelStorei 関数

ピクセル ストレージ モードを設定します。

構文

void WINAPI glPixelStorei(
   GLenum pname,
   GLint  param
);

パラメーター

pname

設定するパラメーターのシンボリック名。 6 つのストレージ パラメーターは、ピクセル データがクライアント メモリに返される方法に影響するため、 glReadPixels コマンドでのみ重要です。 これらは次のとおりです。

ストレージ パラメーター 説明
GL_PACK_SWAP_BYTES true の場合、マルチバイトカラーコンポーネント、深度コンポーネント、カラーインデックス、ステンシルインデックスのバイト順序は逆になります。 つまり、4 バイトのコンポーネントがバイト b0、 b1、 b2、 b3 で構成されている場合、GL_PACK_SWAP_BYTESが true の場合は 、b3 、 b2、 b1、 b0 としてメモリに格納されます。 GL_PACK_SWAP_BYTESは、ピクセル内のコンポーネントのメモリ順序には影響を及ぼすので、コンポーネントまたはインデックス内のバイトの順序にのみ影響します。 たとえば、GL_RGB形式ピクセルの 3 つのコンポーネントは、GL_PACK_SWAP_BYTESの値に関係なく、常に赤の 1 番目、緑の秒、青の 3 番目に格納されます。
GL_PACK_LSB_FIRST true の場合、ビットはバイト内で最下位から最上位に並べ替えられます。それ以外の場合、各バイトの最初のビットが最も重要なビットになります。 このパラメーターは、ビットマップ データに対してのみ重要です。
GL_PACK_ROW_LENGTH 0 より大きい場合、GL_PACK_ROW_LENGTHは行のピクセル数を定義します。 行の最初のピクセルがメモリ内の位置 p に配置されている場合、次の行の最初のピクセルの位置は、GL_PACK_ROW_LENGTHの次の行の最初のピクセルの位置を示す数式をスキップすることによって取得されます。[改行] コンポーネントまたはインデックス(n はピクセル内のコンポーネントまたはインデックスの数)、l は行内のピクセル数 (0 より大きい場合は gl-pack-row-length、それ以外の場合はピクセル ルーチンの width 引数)、a は gl-pack-alignment の値、s は単一コンポーネントのサイズ (<バイト単位) です その場合は、 のように = 表示されます 1 ビット値の場合、次の行の位置は、GL_PACK_ROW_LENGTH内の次の行の位置を示す数式をスキップすることによって取得されます。
コンポーネントまたはインデックス。 この説明の単語 コンポーネント は、インデックス以外の値 (赤、緑、青、アルファ、深さ) を指します。 たとえば、ストレージ形式GL_RGBには、1 ピクセルあたり 3 つのコンポーネント (最初の赤、緑、最後に青) があります。
GL_PACK_SKIP_PIXELSと
GL_PACK_SKIP_ROWS
これらの値は、プログラマにとって便利な方法として提供されます。 glReadPixels に渡されたポインターをインクリメントするだけでは複製できない機能はありません。 GL_PACK_SKIP_PIXELSを i に設定することは、i n 個のコンポーネントまたはインデックスによってポインターをインクリメントすることと同じです。 ここで、n は各ピクセル内のコンポーネントまたはインデックスの数です。 GL_PACK_SKIP_ROWSを j に設定することは、 j k コンポーネントまたはインデックスによってポインターをインクリメントすることと同じです。 ここで、k は、GL_PACK_ROW_LENGTH セクションで前述したように、行あたりのコンポーネントまたはインデックスの数です。
GL_PACK_ALIGNMENT メモリ内の各ピクセル行の開始の配置要件を指定します。 許容される値は、1 (バイトアラインメント)、2 (偶数バイトにアラインされた行)、4 (ワードアラインメント)、および 8 (2 ワード境界で開始される行) です。

他の 6 つのストレージ パラメーターは、ピクセル データをクライアント メモリから読み取る方法に影響します。 これらの値は、 glDrawPixelsglTexImage1DglTexImage2DglBitmapおよび glPolygonStipple で重要です。 制限事項は次のとおりです。

ストレージ パラメーター 説明
GL_UNPACK_SWAP_BYTES true の場合、マルチバイトカラーコンポーネント、深度コンポーネント、カラーインデックス、ステンシルインデックスのバイト順序は逆になります。 つまり、4 バイトのコンポーネントがバイト b0、 b1、 b2、 b3 で構成されている場合、GL_UNPACK_SWAP_BYTESが true の場合は b3、 b2、 b1、 b0 としてメモリに格納されます。 GL_UNPACK_SWAP_BYTESは、ピクセル内のコンポーネントのメモリ順序には影響を及ぼすので、コンポーネントまたはインデックス内のバイトの順序にのみ影響します。 たとえば、GL_RGB形式のピクセルの 3 つのコンポーネントは、GL_UNPACK_SWAP_BYTESの値に関係なく、常に赤の 1 番目、緑の秒、青の 3 番目に格納されます。
GL_UNPACK_LSB_FIRST true の場合、ビットはバイト内で最下位から最上位に並べ替えられます。それ以外の場合、各バイトの最初のビットが最も重要なビットになります。 これは、ビットマップ データに対してのみ重要です。
GL_UNPACK_ROW_LENGTH 0 より大きい場合、GL_UNPACK_ROW_LENGTHは行のピクセル数を定義します。 行の最初のピクセルがメモリ内の位置 p に配置されている場合、次の行の最初のピクセルの位置は、GL_UNPACK_ROW_LENGTHの次の行の最初のピクセルの位置を示す数式をスキップすることによって取得されます。[改行] コンポーネントまたはインデックス(n はピクセル内のコンポーネントまたはインデックスの数)、l は行内のピクセル数 (0 より大きい場合は gl-pack-row-length、それ以外の場合はピクセル ルーチンの width 引数)、a は gl-pack-alignment の値、s は単一コンポーネントのサイズ (<バイト単位) です その場合は、 のように = 表示されます 1 ビット値の場合、次の行の位置は、GL_UNPACK_ROW_LENGTH内の次の行の位置を示す数式をスキップすることによって取得されます。
コンポーネントまたはインデックス。 この説明の単語 コンポーネント は、インデックス以外の値 (赤、緑、青、アルファ、深さ) を指します。 たとえば、ストレージ形式GL_RGBには、1 ピクセルあたり 3 つのコンポーネント (最初の赤、緑、最後に青) があります。
GL_UNPACK_SKIP_PIXELSと
GL_UNPACK_SKIP_ROWS
これらの値は、プログラマにとって便利な方法として提供されます。 glDrawPixelsglTexImage1DglTexImage2DglBitmap、または glPolygonStipple に渡されたポインターをインクリメントするだけでは複製できない機能はありません。 GL_UNPACK_SKIP_PIXELSを i に設定することは、i n 個のコンポーネントまたはインデックスによってポインターをインクリメントすることと同じです。 ここで、n は各ピクセル内のコンポーネントまたはインデックスの数です。 GL_UNPACK_SKIP_ROWSを j に設定することは、 j k コンポーネントまたはインデックスによってポインターをインクリメントすることと同じです。 ここで、k は、GL_UNPACK_ROW_LENGTH セクションで前述したように、行あたりのコンポーネントまたはインデックスの数です。
GL_UNPACK_ALIGNMENT メモリ内の各ピクセル行の開始の配置要件を指定します。 許容される値は、1 (バイトアラインメント)、2 (偶数バイトにアラインされた行)、4 (ワードアラインメント)、および 8 (2 ワード境界で開始される行) です。

param

pname が設定されている値。

戻り値

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

注釈

glPixelStore 関数は、後続の glDrawPixelsglReadPixels の操作に影響を与えるピクセル ストレージ モードと、多角形のヒント パターン (glPolygonStipple を参照)、ビットマップ (glBitmap を参照)、テクスチャ パターン (glTexImage1DglTexImage2DglTexSubImage1Dおよび glTexSubImage2D を参照) の展開に影響を与えるピクセル ストレージ モードを設定します。

次の表に、 glPixelStore で設定できる各ストレージ パラメーターの有効な値の種類、初期値、および範囲を示します。

Pname Type 初期値 有効範囲
GL_PACK_SWAP_BYTES Boolean false true または false
GL_PACK_SWAP_BYTES Boolean false true または false
GL_PACK_ROW_LENGTH 整数 (integer) 0 [0,?)
GL_PACK_SKIP_ROWS 整数 (integer) 0 [0,?)
GL_PACK_SKIP_PIXELS 整数 (integer) 0 [0,?)
GL_PACK_ALIGNMENT 整数 (integer) 4 1、2、4、または 8
GL_UNPACK_SWAP_BYTES Boolean false true または false
GL_UNPACK_LSB_FIRST Boolean false true または false
GL_UNPACK_ROW_LENGTH 整数 (integer) 0 [0,?)
GL_UNPACK_SKIP_ROWS 整数 (integer) 0 [0,?)
GL_UNPACK_SKIP_PIXELS 整数 (integer) 0 [0,?)
GL_UNPACK_ALIGNMENT 整数 (integer) 4 1、2、4、または 8

glPixelStoref 関数を使用して、任意のピクセル ストア パラメーターを設定できます。 パラメーターの型が Boolean で、 param が 0.0 の場合、パラメーターは false になります。それ以外の場合は true に設定されます。 pname が整数型パラメーターの場合、param は最も近い整数に丸められます。

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

glDrawPixelsglReadPixelsglTexImage1D、glTexImage2DglBitmap、または glPolygonStipple がメモリ データの解釈を制御する表示リストに配置された場合に有効なピクセル ストレージ モード。 表示リストの実行時に有効なピクセルストレージモードは重要ではありません。

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

引数GL_PACK_SWAP_BYTESを含む glGet

引数GL_PACK_LSB_FIRSTを含む glGet

引数GL_PACK_ROW_LENGTHを含む glGet

引数GL_PACK_SKIP_ROWSを含む glGet

引数GL_PACK_SKIP_PIXELSを含む glGet

引数GL_PACK_ALIGNMENTを含む glGet

引数GL_UNPACK_SWAP_BYTESを含む glGet

引数GL_UNPACK_LSB_FIRSTを含む glGet

引数GL_UNPACK_ROW_LENGTHを含む glGet

引数GL_UNPACK_SKIP_ROWSを含む glGet

引数GL_UNPACK_SKIP_PIXELSを含む glGet

引数GL_UNPACK_ALIGNMENTを含む glGet

必要条件

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

関連項目

glBegin

glBitmap

glDrawPixels

glEnd

glPixelMap

glPixelTransfer

glPixelZoom

glPolygonStipple

glReadPixels

glTexImage1D

glTexImage2D