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_INVALID_ENUM
目標 不是GL_TEXTURE。
GL_INVALID_ENUM
format 不是可接受的 格式 常數。 只接受 GL_STENCIL_INDEX 和 GL_DEPTH_COMPONENT 以外的格式常數。 如需可能值的清單,請參閱格式 的參數描述
GL_INVALID_ENUM
type 不是 類型 常數。
GL_INVALID_ENUM
類型 為 GL_BITMAP,且 格式 未GL_COLOR_INDEX。
GL_INVALID_VALUE
level 小於零或大於 log2 max ,其中 max 是傳回的值 GL_MAX_TEXTURE_SIZE。
GL_INVALID_VALUE
internalformat 不是 1、2、3 或 4。
GL_INVALID_VALUE
width 小於零或大於 2 + GL_MAX_TEXTURE_SIZE,或無法表示為 n 的整數值 2 n + 2(框線)。
GL_INVALID_VALUE
框線 不是 0 或 1。
GL_INVALID_OPERATION
在 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 的相關資訊

glGetTexImage

glIsEnabled 搭配引數GL_TEXTURE_1D

需求

需求
最低支援的用戶端
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