次の方法で共有


glColorSubTableEXT 関数

glColorSubTableEXT 関数は、置き換える対象のテクスチャのパレットの一部を指定します。

構文

void WINAPI glColorSubTableEXT(
         GLenum  target,
         GLsizei start,
         GLsizei count,
         GLenum  format,
         GLenum  type,
   const GLvoid  *data
);

パラメーター

target

パレットを変更する対象のパレット テクスチャ。 TEXTURE_1DまたはTEXTURE_2Dである必要があります。

start

変更するパレットの開始パレット インデックスエントリ。

count

開始時に変更するパレットのパレット インデックス エントリの数。 count パラメーターは、変更されるパレット 索引項目の範囲を決定します。

format

ピクセル データの形式。 次のシンボリック定数を使用できます。

説明
GL_RGBA
各ピクセルは、赤、緑、青、アルファの 4 つのコンポーネントのグループです。 RGBA 形式は、次の方法で決定されます。
  1. glColorSubTableEXT 関数は、浮動小数点値を、精度が指定されていない内部形式に直接変換します。 符号付き整数値は、最も正の表現可能な整数値が 1.0 にマップされ、最も負の表現可能な値が -1.0 にマップされるように、内部形式に線形にマップされます。 符号なし整数データも同様にマップされます。最大値は 1.0 に、ゼロは 0.0 にマップされます。
  2. glColorSubTableEXT 関数は、結果の色の値にGL_c_SCALEを乗算し、GL_c_BIASに加算します。ここで、c はそれぞれの色コンポーネントの RED、GREEN、BLUE、ALPHA です。 結果は[0,1]の範囲にクランプされます。
  3. GL_MAP_COLORが TRUE の場合、 glColorSubTableEXT は、各色コンポーネントを参照テーブルGL_PIXEL_MAP_c_TO_cのサイズでスケーリングし、そのテーブル内で参照する値でコンポーネントを置き換えます。 c はそれぞれ R、G、B、または A です。
  4. glColorSubTableEXT 関数は、現在のラスター位置 z 座標とテクスチャ座標を各ピクセルにアタッチし、xy のウィンドウ座標を x のように n番目のフラグメントに割り当てることで、結果の RGBA 色をフラグメントに変換します。 = xr + n mod width
    y? = yr +n / width
    ここで (xr , yr ) は現在のラスター位置です。
  5. これらのピクセル フラグメントは、ポイント、ライン、またはポリゴンをラスター化することによって生成されたフラグメントと同じように処理されます。 glColorSubTableEXT 関数は、フレームバッファーにフラグメントを書き込む前に、テクスチャ マッピング、霧、およびすべてのフラグメント操作を適用します。
GL_RED
各ピクセルは 1 つの赤いコンポーネントです。
glColorSubTableEXT 関数は、RGBA ピクセルの赤のコンポーネントと同じ方法でこのコンポーネントを内部形式に変換し、緑と青を 0.0 に設定し、アルファを 1.0 に設定した RGBA ピクセルに変換します。 この変換後、ピクセルは RGBA ピクセルとして読み取られたかのように処理されます。
GL_GREEN
各ピクセルは 1 つの緑色のコンポーネントです。
glColorSubTableEXT 関数は、RGBA ピクセルの緑のコンポーネントと同じ方法でこのコンポーネントを内部形式に変換し、赤と青を 0.0 に設定し、アルファを 1.0 に設定した RGBA ピクセルに変換します。 この変換後、ピクセルは RGBA ピクセルとして読み取られたかのように処理されます。
GL_BLUE
各ピクセルは 1 つの青いコンポーネントです。
glColorSubTableEXT 関数は、RGBA ピクセルの青成分と同じ方法でこのコンポーネントを内部形式に変換し、赤と緑を 0.0 に設定し、アルファを 1.0 に設定した RGBA ピクセルに変換します。 この変換後、ピクセルは RGBA ピクセルとして読み取られたかのように処理されます。
GL_ALPHA
各ピクセルは 1 つのアルファ コンポーネントです。
glColorSubTableEXT 関数は、RGBA ピクセルのアルファ コンポーネントと同じ方法でこのコンポーネントを内部形式に変換し、赤、緑、青を 0.0 に設定した RGBA ピクセルに変換します。 この変換後、ピクセルは RGBA ピクセルとして読み取られたかのように処理されます。
GL_RGB
各ピクセルは、赤、緑、青の 3 つのコンポーネントのグループです。
glColorSubTableEXT 関数は、RGBA ピクセルの赤、緑、青の各コンポーネントと同じ方法で、各コンポーネントを内部形式に変換します。 カラー トリプルは、アルファが 1.0 に設定された RGBA ピクセルに変換されます。 この変換後、ピクセルは RGBA ピクセルとして読み取られたかのように処理されます。
GL_BGR_EXT
各ピクセルは、青、緑、赤の 3 つのコンポーネントのグループです。
GL_BGR_EXTは、Windows デバイスに依存しないビットマップ (DIB) のメモリ レイアウトに一致する形式を提供します。 したがって、アプリケーションは、Windows 関数呼び出しと OpenGL ピクセル関数呼び出しで同じデータを使用できます。
GL_BGRA_EXT
各ピクセルは、青、緑、赤、アルファの 4 つのコンポーネントのグループです。
GL_BGRA_EXTは、Windows デバイスに依存しないビットマップ (DIB) のメモリ レイアウトに一致する形式を提供します。 したがって、アプリケーションは、Windows 関数呼び出しと OpenGL ピクセル関数呼び出しで同じデータを使用できます。

type

データのデータ型。 使用できるシンボリック定数は、GL_UNSIGNED_BYTE、GL_BYTE、GL_UNSIGNED_SHORT、GL_SHORT、GL_UNSIGNED_INT、GL_INT、GL_FLOATです。

次の表は、 パラメーターの有効な定数の意味をまとめたものです。

説明
GL_UNSIGNED_BYTE
符号なし 8 ビット整数
GL_BYTE
符号付き 8 ビット整数
GL_UNSIGNED_SHORT
符号なし 16 ビット整数
GL_SHORT
符号付き 16 ビット整数
GL_UNSIGNED_INT
符号なし 32 ビット整数
GL_INT
32-bit integer
GL_FLOAT
単精度浮動小数点数値

data

パレット テクスチャ データへのポインター。 データは、パレット エントリの 1-D テクスチャ パレット エントリの単一ピクセルとして扱われます。

戻り値

この関数は値を返しません。

エラー コード

glGetError 関数では、次のエラー コードを取得できます。

名前 意味
GL_INVALID_VALUE
start または count が無効な整数でした。
GL_INVALID_ENUM
targetformat、または type が受け入れられた値ではありません。
GL_INVALID_VALUE
この関数は、 glBegin の呼び出しと glEnd の対応する呼び出しの間で呼び出されました。

解説

glColorSubTableEXT 関数は、置き換える現在のターゲット テクスチャのパレットの一部を指定します。 glColorTableEXT とは異なり、ターゲット パラメーターをプロキシ テクスチャ パレットに指定することはできません。

注意

glColorSubTableEXT 関数は、標準の OpenGL ライブラリの一部ではありませんが、GL_EXT_paletted_texture拡張機能の一部である拡張関数です。 OpenGL の実装で glColorSubTableEXT がサポートされているかどうかをチェックするには、glGetString(GL_EXTENSIONS) を呼び出します。 GL_EXT_paletted_textureを返す場合は、 glColorSubTableEXT がサポートされます。 拡張関数の関数アドレスを取得するには、 wglGetProcAddress を呼び出します。

必要条件

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

関連項目

glBegin

glColorTableEXT

glEnd

glGetColorTableEXT

glGetColorTableParameterfvEXT

glGetColorTableParameterivEXT

glGetString

wglGetProcAddress