Share via


glPixelStoref 関数

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

構文

void WINAPI glPixelStoref(
   GLenum  pname,
   GLfloat 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 引数)、それ以外の場合は gl-pack-alignment の値、s は 1 つのコンポーネントのサイズ (バイト単位) です (sの場合<) その後、s の場合 = と同じになります)。 1 ビット値の場合、次の行の場所は、次の行の位置を示す数式をスキップして取得GL_PACK_ROW_LENGTH。
コンポーネントまたはインデックス。 この説明の単語 コンポーネント は、インデックス以外の値 (赤、緑、青、アルファ、深さ) を参照します。 たとえば、ストレージ形式GL_RGBには、ピクセルごとに 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 引数)、それ以外の場合は gl-pack-alignment の値、s は 1 つのコンポーネントのサイズ (バイト単位) です (sの場合<) その後、s の場合 = と同じになります)。 1 ビット値の場合、次の行の位置は、GL_UNPACK_ROW_LENGTH内の次の行の位置を示す数式をスキップすることによって取得されます。
コンポーネントまたはインデックス。 この説明の単語 コンポーネント は、インデックス以外の値 (赤、緑、青、アルファ、深さ) を参照します。 たとえば、ストレージ形式GL_RGBには、ピクセルごとに 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 を参照)、テクスチャ パターン (glTexImage1D、glTexImage2DglTexSubImage1Dおよび 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 関数を使用して、任意のピクセル ストア パラメーターを設定することもできます。 param が 0 の場合はブール値パラメーターが false に設定され、それ以外の場合は true に設定されます。 param パラメーターは、実値パラメーターに割り当てられる前に浮動小数点に変換されます。

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

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

glGet と引数 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

引数GL_UNPACK_SKIP_PIXELSを含む glGet

glGet と引数 GL_UNPACK_ALIGNMENT

必要条件

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

関連項目

glBegin

glBitmap

glDrawPixels

glEnd

glPixelMap

glPixelTransfer

glPixelZoom

glPolygonStipple

glReadPixels

glTexImage1D

glTexImage2D