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 は基本イメージです。 レベル nn 番目のミップマップ縮小画像です。

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_INVALID_ENUM
ターゲット が GL_TEXTURE_1D ではありませんでした。
GL_INVALID_ENUM
形式 は受け入れられなかった定数です。
GL_INVALID_ENUM
type は受け入れられた定数ではありません。
GL_INVALID_ENUM
type は GL_BITMAP であり、format は GL_COLOR_INDEX ではありませんでした。
GL_INVALID_VALUE
level が 0 より小さいか、log2 maxより大きく、max は GL_MAX_TEXTURE_SIZE の戻り値でした。
GL_INVALID_VALUE
xoffsetb より小さいか、またはオフセット + wb より大きかった場合、 w が GL_TEXTURE_WIDTH です。 b は、変更するテクスチャ イメージのGL_TEXTURE_BORDERの幅です。
w には罫線の幅の 2 倍が含まれていることに注意してください。
GL_INVALID_VALUE
widthb 未満で、b はテクスチャ配列の境界線の幅です。
GL_INVALID_VALUE
border はゼロでも 1 でもありませんでした。
GL_INVALID_OPERATION
texure 配列は、前の glTexImage1D 操作によって定義されませんでした。
GL_INVALID_OPERATION
この関数は、glBegin の呼び出しと glEnd へ対応する呼び出しの間に呼び出されました。

解説

プリミティブの 1 次元テクスチャリングは、引数 GL_TEXTURE_1Dで glEnableglDisable を使用して 有効になります。 テクスチャリング中に、指定されたテクスチャ イメージの一部が、有効になっている各プリミティブにマップされます。 glTexSubImage1D 関数を 使用して、テクスチャリング用の既存の 1 次元テクスチャ イメージの連続したサブイメージを指定します。

ピクセルによって 参照されるテクセルは、既存のテクスチャ配列の領域を、xoffset および xoffset + ( 1) を含む x インデックスに置き換えます。 この領域には、最初に指定したテクスチャ配列の範囲外のテクセルを含めることはできません。

が 0 のサブイメージを指定しても効果はなく、エラーは生成されません。

テクスチャリングは、カラー インデックス モードでは効果がありません。

一般に、テクスチャ イメージは glDrawPixels コマンドのピクセルと同じデータ形式で表すことができますが、GL_STENCIL_INDEX と GL_DEPTH_COMPONENT は使用できません。 glPixelStore モードと glPixelTransfer モードは、glDrawPixels に影響を与える方法でテクスチャ イメージに正確に影響します。

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

glGetTexImage

引数 GL_TEXTURE_1D で glIsEnabled

必要条件

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

関連項目

glCopyTexImage1D

glCopyTexImage2D

glCopyTexSubImage1D

glCopyTexSubImage2D

glDrawPixels

glEnable

glFog

glGetTexImage

glIsEnabled

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexParameter

glTexSubImage2D