glTexImage1D 関数

glTexImage1D 関数は、1 次元テクスチャ イメージを指定します。

構文

void WINAPI glTexImage1D(
         GLenum  target,
         GLint   level,
         GLint   internalformat,
         GLsizei width,
         GLint   border,
         GLint   format,
         GLenum  type,
   const GLvoid  *pixels
);

パラメーター

ターゲット

対象テクスチャ。 GL_TEXTURE_1D にする必要があります。

level

詳細設定のレベル番号。 レベル 0 は基本イメージ レベルです。 レベル nn 番目のミップマップ縮小画像です。

internalformat

テクスチャ内のカラー コンポーネントの数を指定します。 1、2、3、4、または次のシンボリック定数のいずれかにする必要があります: GL_ALPHA、GL_ALPHA4、GL_ALPHA8、GL_ALPHA12、GL_ALPHA16、GL_LUMINANCE、GL_LUMINANCE4、GL_LUMINANCE8、GL_LUMINANCE12、GL_LUMINANCE16、GL_LUMINANCE_ALPHA、GL_LUMINANCE4_ALPHA4、GL_LUMINANCE6_ALPHA2、GL_LUMINANCE8_ALPHA8、GL_LUMINANCE12_ALPHA4、GL_LUMINANCE12_ALPHA12、GL_LUMINANCE16_ALPHA16、GL_INTENSITY、GL_INTENSITY4、GL_INTENSITY8、GL_INTENSITY12、GL_INTENSITY16、GL_RGB、GL_R3_G3_B2、GL_RGB4, GL_RGB5、GL_RGB8、GL_RGB10、GL_RGB12、GL_RGB16、GL_RGBA、GL_RGBA2、GL_RGBA4、GL_RGB5_A1、GL_RGBA8、GL_RGB10_A2、GL_RGBA12、または GL_RGBA16。

width

テクスチャ イメージの幅。 整数 n の場合、2n + 2( 罫線 ) にする必要があります。 テクスチャ イメージの高さは 1 です。

枠線

境界の幅。 0 または 1 でなければなりません。

format

ピクセル データの形式。 これには、9 つのシンボリック値のいずれかを想定できます。

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_BGR_EXT
各ピクセルは、青、緑、赤の順の 3 つのコンポーネントのグループです。
GL_BGR_EXT は、Windows デバイスに依存しないビットマップ (DIB) のメモリ レイアウトに一致する形式を提供します。 したがって、アプリケーションは、Windows 関数呼び出しと OpenGL ピクセル関数呼び出しで同じデータを使用できます。
GL_BGRA_EXT
各ピクセルは、青、緑、赤、アルファの順の 3 つのコンポーネントのグループです。
GL_BGRA_EXT は、Windows デバイスに依存しないビットマップ (DIB) のメモリ レイアウトに一致する形式を提供します。 したがって、アプリケーションは、Windows 関数呼び出しと OpenGL ピクセル関数呼び出しで同じデータを使用できます。
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 関数で取得できます。

名前 意味
GL_INVALID_ENUM
target は GL_TEXTURE ではありませんでした。
GL_INVALID_ENUM
format は承認された format 定数ではありませんでした。 GL_STENCIL_INDEX および GL_DEPTH_COMPONENT 以外の形式定数のみが受け入れられます。 使用可能な値の一覧については、format のパラメーターの説明を参照してください。
GL_INVALID_ENUM
typetype 定数ではありませんでした。
GL_INVALID_ENUM
type は GL_BITMAP であり、format は GL_COLOR_INDEX ではありませんでした。
GL_INVALID_VALUE
level が 0 より小さいか、log2max より大きく、max は GL_MAX_TEXTURE_SIZE の戻り値でした。
GL_INVALID_VALUE
internalformat は 1、2、3、または 4 ではありませんでした。
GL_INVALID_VALUE
width が 0 より小さいか、2 + GL_MAX_TEXTURE_SIZE より大きかったか、整数値 n に対して 2n + 2(border) として表現できませんでした。
GL_INVALID_VALUE
border は 0 または 1 ではありませんでした。
GL_INVALID_OPERATION
この関数は、glBegin に対する呼び出しと glEnd に対応する呼び出しの間で呼び出されました。

解説

glTexImage1D 関数は、1 次元テクスチャ イメージを指定します。 テクスチャは、指定されたテクスチャ イメージの一部を、テクスチャが有効になっている各グラフィカル プリミティブにマップします。 1 次元テクスチャは、引数 GL_TEXTURE_1D で glEnableglDisable を使用して有効および無効になります。

テクスチャ イメージは glTexImage1D で定義されます。 引数は、幅、罫線の幅、詳細設定のレベル番号 (glTexParameter 参照)、指定された色コンポーネントの数など、テクスチャ イメージのパラメーターを記述します。 最後の 3 つの引数は、イメージがメモリ内で表現される方法を表します。 これらの引数は、glDrawPixels に使用されるピクセル形式と同じです。

データは、type に応じて、符号付きバイトまたは符号なしバイト、下降または上昇、または単精度浮動小数点値のシーケンスとしてピクセルから読み取られます。 これらの値は、format に応じて 1、2、3、または 4 つの値のセットにグループ化され、要素を形成します。 type が GL_BITMAP である場合、データは符号なしバイトの文字列と見なされます (format は GL_COLOR_INDEX である必要があります)。 各データ バイトは 8 つの 1 ビット要素として扱われ、ビットの順序は GL_UNPACK_LSB_FIRST によって決まります (glPixelStore 参照)。

テクスチャ イメージには、コンポーネントに応じて、テクスチャ要素ごとに最大 4 つのコンポーネントを含めることができます。 1 つのコンポーネントのテクスチャ イメージでは、ピクセルから抽出された RGBA の色の赤のコンポーネントのみが使用されます。 2 つのコンポーネントのイメージでは、R と A の値が使用されます。 3 つのコンポーネントのイメージでは、R、G、B の値が使用されます。 4 つのコンポーネントのイメージでは、すべての RGBA コンポーネントが使用されます。

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

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

幅が 0 のテクスチャ イメージは、null テクスチャを示します。 詳細設定のレベル 0 に null テクスチャが指定されている場合は、テクスチャが無効になっているかのようになります。

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

glGetTexImage

引数 GL_TEXTURE_1D を含む glIsEnabled

必要条件

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

関連項目

glBegin

glCopyPixels

glCopyTexImage1D

glCopyTexImage2D

glCopyTexSubImage1D

glCopyTexSubImage2D

glDrawPixels

glEnd

glFog

glGetTexImage

glIsEnabled

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage2D

glTexSubImage1D

glTexSubImage2D

glTexParameter