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 格式以這種方式決定: - glColorTableEXT函式會將浮點值直接轉換成具有未指定精確度的內部格式。 帶正負號的整數值會以線性方式對應至內部格式,讓最正表示的整數值對應至 1.0,而最負數表示的整數值則對應至 -1.0。 不帶正負號的整數資料同樣地對應:最大整數值會對應至 1.0,而零則對應至 0.0。
- glColorTableEXT函式會將產生的色彩值乘以GL_c_SCALE,並將其新增至GL_c_BIAS,其中c是紅色、綠色、藍色,以及個別色彩元件的 ALPHA。 結果會限制在範圍 [0,1]。
- 如果GL_MAP_COLOR為 TRUE, glColorTableEXT 會依查閱表格的大小調整每個色彩元件GL_PIXEL_MAP_c_TO_c,然後將元件取代為該資料表中所參考的值; c 分別是 R、G、B 或 A。
-
glColorTableEXT函式會將目前點陣位置z座標和紋理座標附加至每個圖元,然後將x和y視窗座標指派給n個片段,將產生的 RGBA 色彩轉換成片段,讓x?
=
xr + n mod寬度
Y? = yr +n / width
其中 (xr 、 yr ) 是目前的點陣位置。 - 然後,這些圖元片段會像點陣化點、線條或多邊形所產生的片段一樣來處理。 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函式可以擷取下列錯誤碼。
名稱 | 意義 |
---|---|
|
width 是不正確整數。 |
|
target、 internalFormat、 format或 type 不是接受的值。 |
|
在 對 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函式所指定之色彩表的寬度和格式等參數,請呼叫glGetColorTableParameterivEXT或glGetColorTableParameterfvEXT函式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows 2000 Server [僅限傳統型應用程式] |
標頭 |
|