glTexSubImage1D 関数
glTexSubImage1D 関数は、既存の 1 次元テクスチャ イメージの一部を指定します。 glTexSubImage1D を使用して新しいテクスチャを定義することはできません。
構文
void WINAPI glTexSubImage1D(
GLenum target,
GLint level,
GLint xoffset,
GLsizei width,
GLenum format,
GLenum type,
const GLvoid *pixels
);
パラメーター
-
ターゲット
-
ターゲット テクスチャ。 GL_TEXTURE_1D にする必要があります。
-
level
-
詳細レベル番号。 レベル 0 は基本イメージです。 レベル n は n 番目のミップマップ縮小画像です。
-
xoffset
-
テクスチャ配列内の x 方向の テクセル オフセット。
-
width
-
テクスチャ サブイメージの幅。
-
format
-
ピクセル データの形式。 このパラメーターは、次のいずれかのシンボリック値を想定できます。
Value 意味 - GL_COLOR_INDEX
各要素は単一の値であり、色のインデックスです。 固定小数点形式 (バイナリ ポイントの右側に 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です。
-
pixels
-
メモリ内の画像データへのポインター。
戻り値
この関数は値を返しません。
エラー コード
glGetError 関数では、次のエラー コードを取得できます。
名前 | 意味 |
---|---|
|
ターゲット が GL_TEXTURE_1D ではありませんでした。 |
|
形式 は受け入れられなかった定数です。 |
|
type は受け入れられた定数ではありません。 |
|
type は GL_BITMAP であり、format は GL_COLOR_INDEX ではありませんでした。 |
|
level が 0 より小さいか、log2 maxより大きく、max は GL_MAX_TEXTURE_SIZE の戻り値でした。 |
|
xoffset が b より小さいか、またはオフセット + 幅が wb より大きかった場合、 w が GL_TEXTURE_WIDTH です。 b は、変更するテクスチャ イメージのGL_TEXTURE_BORDERの幅です。 w には罫線の幅の 2 倍が含まれていることに注意してください。 |
|
width が b 未満で、b はテクスチャ配列の境界線の幅です。 |
|
border はゼロでも 1 でもありませんでした。 |
|
texure 配列は、前の glTexImage1D 操作によって定義されませんでした。 |
|
この関数は、glBegin の呼び出しと glEnd へ対応する呼び出しの間に呼び出されました。 |
解説
プリミティブの 1 次元テクスチャリングは、引数 GL_TEXTURE_1Dで glEnable と glDisable を使用して 有効になります。 テクスチャリング中に、指定されたテクスチャ イメージの一部が、有効になっている各プリミティブにマップされます。 glTexSubImage1D 関数を 使用して、テクスチャリング用の既存の 1 次元テクスチャ イメージの連続したサブイメージを指定します。
ピクセルによって 参照されるテクセルは、既存のテクスチャ配列の領域を、xoffset および xoffset + ( 幅 1) を含む x インデックスに置き換えます。 この領域には、最初に指定したテクスチャ配列の範囲外のテクセルを含めることはできません。
幅が 0 のサブイメージを指定しても効果はなく、エラーは生成されません。
テクスチャリングは、カラー インデックス モードでは効果がありません。
一般に、テクスチャ イメージは glDrawPixels コマンドのピクセルと同じデータ形式で表すことができますが、GL_STENCIL_INDEX と GL_DEPTH_COMPONENT は使用できません。 glPixelStore モードと glPixelTransfer モードは、glDrawPixels に影響を与える方法でテクスチャ イメージに正確に影響します。
次の関数は、glTexSubImage1D に関連する情報を取得します:
引数 GL_TEXTURE_1D で glIsEnabled
必要条件
要件 | Value |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|
ライブラリ |
|
[DLL] |
|