共用方式為


glColorTableEXT 函式

glColorTableEXT函式會指定目標調色盤紋理的格式和大小。

語法

void WINAPI glColorTableEXT(
         GLenum  target,
         GLenum  internalFormat,
         GLsizei width,
         GLenum  format,
         GLenum  type,
   const GLvoid  *data
);

參數

目標

要變更調色盤的目標紋理。 必須是TEXTURE_1D、TEXTURE_2D、PROXY_TEXTURE_1D或PROXY_TEXTURE_2D。

internalFormat

調色盤的內部格式和解析度。 此參數可以假設下列其中一個符號值。

常數 基底格式 R 位 G 位 B 位
GL_R3_G3_B2 GL_RGB 3 3 2
GL_RGB4 GL_RGB 4 4 4
GL_RGB5 GL_RGB 5 5 5
GL_RGB8 GL_RGB 8 8 8
GL_RGB10 GL_RGB 10 10 10
GL_RGB12 GL_RGB 12 12 12
GL_RGB16 GL_RGB 16 16 16
GL_RGBA2 GL_RGBA 2 2 2 2
GL_RGBA4 GL_RGBA 4 4 4 4
GL_RGB5_A1 GL_RGBA 5 5 5 1
GL_RGBA8 GL_RGBA 8 8 8 8
GL_RG10_A2 GL_RGBA 10 10 10 2
GL_RGB12 GL_RGBA 12 12 12 12
GL_RGBA16 GL_RGBA 16 16 16 16

寬度

調色盤的大小。 某些整數 n必須是 2n = 1。

format

圖元資料的格式。 接受下列符號常數。

意義
GL_RGBA
每個圖元都是依此順序的四個元件群組:紅色、綠色、藍色、Alpha。 RGBA 格式以這種方式決定:
  1. glColorTableEXT函式會將浮點值直接轉換成具有未指定精確度的內部格式。 帶正負號的整數值會以線性方式對應至內部格式,讓最正表示的整數值對應至 1.0,而最負數表示的整數值則對應至 -1.0。 不帶正負號的整數資料同樣地對應:最大整數值會對應至 1.0,而零則對應至 0.0。
  2. glColorTableEXT函式會將產生的色彩值乘以GL_c_SCALE,並將其新增至GL_c_BIAS,其中c是紅色、綠色、藍色,以及個別色彩元件的 ALPHA。 結果會限制在範圍 [0,1]。
  3. 如果GL_MAP_COLOR為 TRUEglColorTableEXT 會依查閱表格的大小調整每個色彩元件GL_PIXEL_MAP_c_TO_c,然後將元件取代為該資料表中所參考的值; c 分別是 R、G、B 或 A。
  4. glColorTableEXT函式會將目前點陣位置z座標和紋理座標附加至每個圖元,然後將xy視窗座標指派給n個片段,將產生的 RGBA 色彩轉換成片段,讓x? = xr + n mod寬度
    Y? = yr +n / width
    其中 (xryr ) 是目前的點陣位置。
  5. 然後,這些圖元片段會像點陣化點、線條或多邊形所產生的片段一樣來處理。 glColorTableEXT函式會先套用紋理對應、模糊和所有片段作業,再將片段寫入框架緩衝區。
GL_RED
每個圖元都是單一紅色元件。
glColorTableEXT函式會以 RGBA 圖元紅色元件相同的方式,將此元件轉換成內部格式,然後將它轉換成綠色和藍色設為 0.0 的 RGBA 圖元,而 Alpha 設定為 1.0。 在此轉換之後,會將圖元視為已讀取為 RGBA 圖元一樣。
GL_GREEN
每個圖元都是單一綠色元件。
glColorTableEXT函式會以 RGBA 圖元綠色元件相同的方式,將此元件轉換成內部格式,然後將它轉換成紅色和藍色設定為 0.0 的 RGBA 圖元,而 Alpha 設定為 1.0。 在此轉換之後,會將圖元視為已讀取為 RGBA 圖元一樣。
GL_BLUE
每個圖元都是單一藍色元件。
glColorTableEXT函式會以 RGBA 圖元藍色元件相同的方式,將此元件轉換成內部格式,然後將它轉換成紅色和綠色設定為 0.0 的 RGBA 圖元,並將 Alpha 設定為 1.0。 在此轉換之後,會將圖元視為已讀取為 RGBA 圖元一樣。
GL_ALPHA
每個圖元都是單一 Alpha 元件。
glColorTableEXT函式會以 RGBA 圖元的 Alpha 元件相同方式,將此元件轉換成內部格式,然後將它轉換成紅色、綠色和藍色設定為 0.0 的 RGBA 圖元。 在此轉換之後,會將圖元視為已讀取為 RGBA 圖元一樣。
GL_RGB
每個圖元都是依此順序的三個元件群組:紅色、綠色、藍色。
glColorTableEXT函式會以 RGBA 圖元的紅色、綠色和藍色元件相同的方式,將每個元件轉換成內部格式。 色彩三重會轉換成 RGBA 圖元,並將 Alpha 設定為 1.0。 在此轉換之後,會將圖元視為已讀取為 RGBA 圖元一樣。
GL_BGR_EXT
每個圖元都是以下列順序排列三個元件的群組:藍色、綠色、紅色。
GL_BGR_EXT提供符合 Windows 裝置獨立點陣圖記憶體配置的格式, (DIB) 。 因此,您的應用程式可以搭配 Windows 函式呼叫和 OpenGL 圖元函式呼叫使用相同的資料。
GL_BGRA_EXT
每個圖元都是依此順序排列四個元件的群組:藍色、綠色、紅色、Alpha。
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 位元整數
GL_FLOAT
單精確度浮點值

data

調色盤紋理資料的指標。 資料會被視為調色盤專案的 1D 紋理調色盤專案的單一圖元。

傳回值

此函式不會傳回值。

錯誤碼

glGetError函式可以擷取下列錯誤碼。

名稱 意義
GL_INVALID_VALUE
width 是不正確整數。
GL_INVALID_ENUM
targetinternalFormatformattype 不是接受的值。
GL_INVALID_OPERATION
對 glBegin 的呼叫與 glEnd的對應呼叫之間呼叫函式。

備註

調色盤紋理是使用調色盤和一組影像資料來定義,由調色盤的索引組成, (色彩資料表) 。

glColorTableEXT函式會指定目標紋理的紋理調色盤。 它會從記憶體擷取 資料 ,並轉換資料,就像每個調色盤專案都是 1D 紋理的單一圖元。 glColorTableEXT函式會解壓縮並轉換資料,並將其轉譯成符合指定格式的內部格式。

如果調色盤的 寬度 大於紋理資料中色彩索引的範圍,則會使用部分調色盤專案。 如果調色盤的 寬度 小於紋理資料中的色彩索引範圍,則會忽略紋理資料中最重要的位,而且只有在存取調色盤時,才會使用索引中適當的位數。 當您使用 PROXY_TEXTURE_1D 或 PROXY_TEXTURE_2D 指定 Proxy 目標 時,Proxy 紋理的調色盤會調整大小,而且其參數會設定,但不會傳輸或存取任何資料。

目標 參數GL_PROXY_TEXTURE_1D或GL_PROXY_TEXTURE_2D,而且實作不支援針對 格式寬度指定的值時, glColorTableEXT 無法建立要求的色彩表。 在此情況下,色彩表是空的,而且擷取的所有參數都會是零。 您可以使用 Proxy 目標呼叫glColorTableEXT,然後呼叫glGetColorTableParameterivEXT 或 glGetColorTableParameterfvEXT來判斷 width 參數是否符合glColorTableEXT所設定的特定色彩資料表格式和大小。 如果擷取的寬度為零, glColorTable 的色彩表格要求就會失敗。 如果擷取的寬度不是零,您可以使用TEXTURE_1D或TEXTURE_2D來呼叫 glColorTable 來設定色彩表格。

注意

glColorTableEXT函式是不屬於標準 OpenGL 程式庫的延伸模組函式,但屬於GL_EXT_paletted_texture延伸模組的一部分。 若要檢查 OpenGL 的實作是否支援 glColorTableEXT,請呼叫 glGetString (GL_EXTENSIONS) 。 如果傳回GL_EXT_paletted_texture, 則支援 glColorTableEXT 。 若要取得擴充函式的函式位址,請呼叫 wglGetProcAddress

若要擷取 glColorTableEXT 函式所指定的實際色彩資料表資料,請呼叫 glGetColorTableEXT。 若要擷取glColorTableEXT函式所指定之色彩表的寬度格式等參數,請呼叫glGetColorTableParameterivEXTglGetColorTableParameterfvEXT函式。

規格需求

需求
最低支援的用戶端
Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限傳統型應用程式]
標頭
Gl.h

另請參閱

glBegin

glColorSubTableEXT

glEnd

glGetColorTableEXT

glGetColorTableParameterfvEXT

glGetColorTableParameterivEXT

wglGetProcAddress