glTexSubImage2D 関数
glTexSubImage2D 関数では、1 次元テクスチャ イメージの一部が指定されます。 glTexSubImage2D で新しいテクスチャを定義することはできません。
構文
void WINAPI glTexSubImage2D(
GLenum target,
GLint level,
GLint xoffset,
GLint yoffset,
GLsizei width,
GLsizei height,
GLenum format,
GLenum type,
const GLvoid *pixels
);
パラメーター
-
ターゲット
-
対象テクスチャ。 GL_TEXTURE_2D にする必要があります。
-
level
-
詳細設定のレベル番号。 レベル 0 は基本イメージです。 レベル n は n 番目のミップマップ縮小画像です。
-
xoffset
-
テクスチャ配列内の x 方向のテクセル オフセット。
-
yoffset
-
テクスチャ配列内の y 方向のテクセル オフセット。
-
width
-
テクスチャ サブイメージの幅。
-
height
-
テクスチャ サブイメージの高さ。
-
format
-
ピクセル データの形式。 これには次のシンボリック値のいずれかを想定できます。
Value 意味 - GL_COLOR_INDEX
各要素は単一の値であり、色のインデックスです。 これは、(2 進小数点の右側に不特定多数の 0 ビットを持つ) 固定小数点形式に変換され、GL_INDEX_SHIFT の値と符号に応じて左または右にシフトされ、GL_INDEX_OFFSET に追加されます (glPixelTransfer 参照)。 生成されるインデックスは、GL_PIXEL_MAP_I_TO_R、GL_PIXEL_MAP_I_TO_G、GL_PIXEL_MAP_I_TO_B、およびGL_PIXEL_MAP_I_TO_A テーブルを使用して色コンポーネントのセットに変換され、範囲 [0,1] に固定されます。 - GL_RED
各要素は単一の赤のコンポーネントです。 これは浮動小数点形式に変換され、緑と青の場合は 0.0、アルファの場合は 1.0 をアタッチすることで RGBA 要素にまとめられます。 次に、各コンポーネントに符号付きスケール ファクター GL_c_SCALE を乗算し、符号付きバイアス GL_c_BIAS に加算し、範囲 [0,1] に固定されます (glPixelTransfer 参照)。 - GL_GREEN
各要素は単一の緑のコンポーネントです。 これは浮動小数点形式に変換され、赤と青の場合は 0.0、アルファの場合は 1.0 をアタッチすることで RGBA 要素にまとめられます。 次に、各コンポーネントに符号付きスケール ファクター GL_c_SCALE を乗算し、符号付きバイアス GL_c_BIAS に加算し、範囲 [0,1] に固定します (glPixelTransfer 参照)。 - GL_BLUE
各要素は単一の青のコンポーネントです。 これは浮動小数点形式に変換され、赤と緑の場合は 0.0、アルファの場合は 1.0 をアタッチすることで RGBA 要素にまとめられます。 次に、各コンポーネントに符号付きスケール ファクター GL_c_SCALE を乗算し、符号付きバイアス GL_c_BIAS に加算し、範囲 [0,1] に固定されます (glPixelTransfer 参照)。 - GL_ALPHA
各要素は単一のアルファ コンポーネントです。 これは浮動小数点形式に変換され、赤、緑、青の場合は 0.0 をアタッチすることで RGBA 要素にまとめられます。 次に、各コンポーネントに符号付きスケール ファクター GL_c_SCALE を乗算し、符号付きバイアス GL_c_BIAS に加算し、範囲 [0,1] に固定します (glPixelTransfer 参照)。 - GL_RGB
各要素は RGB トリプルです。 これは浮動小数点形式に変換され、アルファの場合は 1.0 をアタッチすることで RGBA 要素にまとめられます。 次に、各コンポーネントに符号付きスケール ファクター GL_c_SCALE を乗算し、符号付きバイアス GL_c_BIAS に加算し、範囲 [0,1] に固定されます (glPixelTransfer 参照)。 - GL_RGBA
各要素は完全な RGBA 要素です。 これは、浮動小数点に変換されます。 次に、各コンポーネントに符号付きスケール ファクター GL_c_SCALE を乗算し、符号付きバイアス GL_c_BIAS に加算し、範囲 [0,1] に固定されます (glPixelTransfer 参照)。 - GL_LUMINANCE
各要素は単一の輝度値です。 これは、浮動小数点形式に変換された後、赤、緑、青の輝度値を 3 回レプリケートし、アルファの場合は 1.0 をアタッチすることで、RGBA 要素にまとめられます。 次に、各コンポーネントに符号付きスケール ファクター GL_c_SCALE を乗算し、符号付きバイアス GL_c_BIAS に加算し、範囲 [0,1] に固定します (glPixelTransfer 参照)。 - GL_LUMINANCE_ALPHA
各要素は輝度とアルファのペアです。 これは、浮動小数点形式に変換された後、赤、緑、青の輝度値を 3 回レプリケートすることで、RGBA 要素にまとめられます。 次に、各コンポーネントに符号付きスケール ファクター GL_c_SCALE を乗算し、符号付きバイアス GL_c_BIAS に加算し、範囲 [0,1] に固定されます (glPixelTransfer 参照)。 -
type
-
ピクセル データのデータ型。 次のシンボリック値が承認されます: GL_UNSIGNED_BYTE、GL_BYTE、GL_BITMAP、GL_UNSIGNED_SHORT、GL_SHORT、GL_UNSIGNED_INT、GL_INT、および GL_FLOAT。
-
ピクセル
-
メモリ内の画像データに対するポインター。
戻り値
この関数は値を返しません。
エラー コード
次のエラー コードは、glGetError 関数で取得できます。
名前 | 意味 |
---|---|
|
target は GL_TEXTURE_2D ではありませんでした。 |
|
format は承認された定数ではありませんでした。 |
|
type は承認された定数ではありませんでした。 |
|
type は GL_BITMAP であり、format は GL_COLOR_INDEX ではありませんでした。 |
|
level が 0 より小さいか、log2 max より大きく、max は GL_MAX_TEXTURE_SIZE の戻り値でした。 |
|
xoffset は -b 未満でした。あるいはr xoffset + width は w - b 超でした。あるいは yoffset は -b 未満でした。あるいは yoffset + height は h - b 超でした。w は GL_TEXTURE_WIDTH です。h は GL_TEXTURE_HEIGHT です。b は、変更中のテクスチャ イメージの GL_TEXTURE_BORDER の幅です。 w と h には罫線の幅の 2 倍が含まれることにご注意ください。 |
|
width は b 未満でした。b はテクスチャ配列の罫線の幅です。 |
|
border はゼロでも 1 でもありませんでした。 |
|
テクスチャ配列は前の glTexImage2D 操作によって定義されませんでした。 |
|
この関数は、glBegin に対する呼び出しと glEnd に対応する呼び出しの間で呼び出されました。 |
解説
プリミティブの 2 次元テクスチャリングは glEnable、glDisable、引数 GL_TEXTURE_2D の使用により有効になります。 テクスチャリング中、指定のテクスチャ イメージの一部が、有効になっている各プリミティブにマッピングされます。 glTexSubImage2D 関数を使用し、テクスチャリングのために既存の 2 次元テクスチャ イメージの連続サブイメージを指定します。
ピクセルによって参照されるテクセルにより、既存のテクスチャ配列の領域が、xoffset と xoffset (始めと終わりを含める) に幅 1 を足した x インデックスと、yoffset と yoffset (始めと終わりを含める) に高さ 1 を足した y インデックスに置換されます。 この領域には、最初に指定したテクスチャ配列の範囲外のテクセルを含めることはできません。
幅ゼロのサブイメージを指定しても何の効果もなく、エラーは生成されません。
テクスチャリングは、色インデックス モードでは効果がありません。
一般的に、テクスチャ イメージは glDrawPixels コマンドのピクセルと同じデータ形式で表すことができますが、GL_STENCIL_INDEX と GL_DEPTH_COMPONENT は使用できません。 glPixelStore モードと glPixelTransfer モードは、glDrawPixels に影響を与える正確な方法でテクスチャ イメージに影響します。
次の関数は、glTexSubImage2D に関連する情報を取得します。
引数 GL_TEXTURE_2D を含む glIsEnabled
必要条件
要件 | Value |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|
ライブラリ |
|
[DLL] |
|