glTexImage1D 函式
glTexImage1D 函式會指定一維紋理影像。
語法
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 是基底映射層級。 Level n 是 n Th mipmap 縮減影像。
-
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。
-
寬度
-
紋理影像的寬度。 某些整數 n 必須是 2 n + 2( 框線 )。 紋理影像的高度為 1。
-
邊境
-
框線的寬度。 必須是 0 或 1。
-
format
-
圖元資料的格式。 它可以假設九個符號值之一。
值 意義 - 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 表示 Alpha,轉換成浮點並組合成 RGBA 元素。 然後,每個元件都會乘以帶正負號的縮放比例GL_c_SCALE、新增至帶正負號偏差GL_c_BIAS,並夾在範圍 [0,1] (請參閱 glPixelTransfer )。 - GL_GREEN
每個元素都是單一綠色元件。 它會藉由附加 0.0 表示紅色和藍色,以及 1.0 表示 Alpha,轉換成浮點並組合成 RGBA 元素。 然後,每個元件都會乘以帶正負號的縮放比例GL_c_SCALE、新增至帶正負號偏差GL_c_BIAS,並夾在範圍 [0,1] (請參閱 glPixelTransfer )。 - GL_BLUE
每個元素都是單一藍色元件。 它會藉由附加 0.0 表示紅色和綠色,以及 1.0 表示 Alpha,轉換成浮點並組合成 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 表示 Alpha,轉換為浮點並組合成 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
每個圖元都是依此順序排列的三個元件群組:藍色、綠色、紅色。
GL_BGR_EXT提供符合 Windows 裝置獨立點陣圖記憶體配置的格式(DIB)。 因此,您的應用程式可以搭配 Windows 函式呼叫和 OpenGL 圖元函式呼叫使用相同的資料。- GL_BGRA_EXT
每個圖元都是依此順序排列的四個元件群組:藍色、綠色、紅色、Alpha。
GL_BGRA_EXT提供符合 Windows 裝置獨立點陣圖記憶體配置的格式。 因此,您的應用程式可以搭配 Windows 函式呼叫和 OpenGL 圖元函式呼叫使用相同的資料。- GL_LUMINANCE
每個元素都是單一亮度值。 它會轉換成浮點,然後藉由複寫紅色、綠色和藍色的亮度值三次,然後組合成 RGBA 元素,並附加 1.0 表示 Alpha。 然後,每個元件都會乘以帶正負號的縮放比例GL_c_SCALE、新增至帶正負號偏差GL_c_BIAS,並夾在範圍 [0,1] (請參閱 glPixelTransfer )。 - GL_LUMINANCE_ALPHA
每個元素都是亮度/Alpha 配對。 它會轉換成浮點,然後藉由複寫紅色、綠色和藍色的亮度值三次,組合成 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_TEXTURE。 |
|
format 不是可接受的 格式 常數。 只接受 GL_STENCIL_INDEX 和 GL_DEPTH_COMPONENT 以外的格式常數。 如需可能值的清單,請參閱格式 的參數描述 。 |
|
type 不是 類型 常數。 |
|
類型 為 GL_BITMAP,且 格式 未GL_COLOR_INDEX。 |
|
level 小於零或大於 log2 max ,其中 max 是傳回的值 GL_MAX_TEXTURE_SIZE。 |
|
internalformat 不是 1、2、3 或 4。 |
|
width 小於零或大於 2 + GL_MAX_TEXTURE_SIZE,或無法表示為 n 的整數值 2 n + 2(框線)。 |
|
框線 不是 0 或 1。 |
|
在 glBegin 呼叫 與 glEnd 的對應呼叫之間呼叫 函式。 |
備註
glTexImage1D 函式會指定一維紋理影像。 文字繪製會將指定 紋理影像 的一部分對應至啟用紋理的每個圖形基本類型。 使用 glEnable 和 glDisable 搭配引數GL_TEXTURE_1D啟用和停用 一維文字。
紋理影像是使用 glTexImage1D 來定義。 這些引數描述紋理影像的參數,例如寬度、框線寬度、詳細資料層級數位(請參閱 glTexParameter ),以及提供的色彩元件數目。 最後三個引數描述影像在記憶體中的表示方式。 這些引數與用於 glDrawPixels 的像素格式 相同。
根據類型 而定, 資料會以 帶正負號或無符號位元組序列、短點或長號或單精確度浮點值序列的形式讀取資料。 這些值會根據格式 分組成一、二、三或四個值的 集合,以形成元素。 如果 type 是GL_BITMAP,則資料會視為不帶正負號位元組的字串(且 格式 必須為GL_COLOR_INDEX)。 每個資料位元組都會被視為 8 個 1 位元素,位順序由 GL_UNPACK_LSB_FIRST 決定(請參閱 glPixelStore )。
根據元件而定, 紋理影像每個紋理元素最多可以有四個元件 。 單元件紋理影像只會使用從 圖元 擷取之 RGBA 色彩的紅色元件。 雙元件映射會使用 R 和 A 值。 三個元件映射會使用 R、G 和 B 值。 四個元件映射會使用所有 RGBA 元件。
著色器在色彩索引模式中沒有作用。
紋理影像可以用與 glDrawPixels 命令中 圖元相同的資料格式來表示,不同之處在于無法使用GL_STENCIL_INDEX和GL_DEPTH_COMPONENT。 glPixelStore 和 glPixelTransfer 模式會以影響 glDrawPixels 的方式 影響紋理影像。
寬度為零的紋理影像表示 Null 紋理。 如果為詳細層級 0 指定 Null 紋理,就好像已停用文字一樣。
下列函式會擷取 glTexImageID 的相關資訊 :
glIsEnabled 搭配引數GL_TEXTURE_1D
需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows 2000 Server [僅限傳統型應用程式] |
標題 |
|
程式庫 |
|
DLL |
|