glTexSubImage1D 函式

GlTexSubImage1D 函式會指定現有一維材質影像的一部分。 您無法使用 glTexSubImage1D 來定義新的材質。

語法

void WINAPI glTexSubImage1D(
         GLenum  target,
         GLint   level,
         GLint   xoffset,
         GLsizei width,
         GLenum  format,
         GLenum  type,
   const GLvoid  *pixels
);

參數

目標

目標材質。 必須是 GL _ 紋理 _ 1d。

level

詳細資料層級數目。 層級0是基底映射。 層級 n 是第 n 個 mipmap 縮減影像。

xoffset

紋理陣列內 x 方向的材質位移。

width (寬度)

材質子影像的寬度。

format

圖元資料的格式。 這個參數可以採用下列其中一個符號值。

意義
GL _ 色彩 _ 索引
每個元素都是單一值,也就是色彩索引。 它會轉換成固定點格式 (在二進位點的右邊有未指定的0位位數) 、向左或向右移動,視 GL 索引移位的值和正負號而定, _ _ 然後新增至 gl _ 索引 _ 位移 (查看 glPixelTransfer) 。 產生的索引會使用 GL _ 圖元 _ 地圖 _ i _ 到 _ R、gl _ 圖元 _ 地圖 _ i _ 到 _ G、gl _ 圖元 _ 地圖 _ i _ 到 _ B,以及 gl _ 圖元 _ 對應 _ i 至 _ _ 資料表,並壓制至範圍 [ 0,1 ] ,轉換成一組色彩元件。
GL _ 紅色
每個元素都是單一的紅色元件。 它會轉換為浮點格式並組合成 RGBA 元素,方法是附加0.0 (適用于綠色和藍色)和1.0 (Alpha)。 接著,每個元件會乘以已簽署的縮放比例 GL _ c _ 規模、新增至帶正負號偏差 gl _ c _ 偏差,然後壓制至範圍 [ 0,1 ] (查看 glPixelTransfer) 。
GL _ 綠
每個元素都是一個綠色的元件。 它會轉換成浮點數格式並組合成 RGBA 元素,方法是附加0.0 (紅色和藍色)和1.0 (Alpha)。 接著,每個元件會乘以已簽署的縮放比例 GL _ c _ 規模、新增至帶正負號偏差 gl _ c _ 偏差,然後壓制至範圍 [ 0,1 ] (查看 glPixelTransfer) 。
GL _ 藍色
每個元素都是單一藍色元件。 它會轉換成浮點數格式並組合成 RGBA 元素,方法是附加0.0 (紅色和綠色)和1.0 (Alpha)。 接著,每個元件會乘以已簽署的縮放比例 GL _ c _ 規模、新增至帶正負號偏差 gl _ c _ 偏差,然後壓制至範圍 [ 0,1 ] (查看 glPixelTransfer) 。
GL _ ALPHA
每個元素都是單一 Alpha 元件。 它會轉換成浮點數格式,並藉由附加0.0 的紅色、綠色和藍色來組合成 RGBA 元素。 接著,每個元件會乘以已簽署的縮放比例 GL _ c _ 規模、新增至帶正負號偏差 gl _ c _ 偏差,然後壓制至範圍 [ 0,1 ] (查看 glPixelTransfer) 。
GL _ RGB
每個元素都是 RGB 三重。 它會轉換成浮點數,並藉由附加1.0 的 Alpha 來組合成 RGBA 元素。 接著,每個元件會乘以已簽署的縮放比例 GL _ c _ 規模、新增至帶正負號偏差 gl _ c _ 偏差,然後壓制至範圍 [ 0,1 ] (查看 glPixelTransfer) 。
GL _ RGBA
每個元素都是完整的 RGBA 元素。 它會轉換成浮點數格式。 接著,每個元件會乘以已簽署的縮放比例 GL _ c _ 規模、新增至帶正負號偏差 gl _ c _ 偏差,然後壓制至範圍 [ 0,1 ] (查看 glPixelTransfer) 。
GL _ 亮度
每個元素都是單一的亮度值。 它會轉換成浮點數格式,然後將亮度值複寫三次(針對紅色、綠色和藍色),然後附加1.0 (Alpha),以組合成 RGBA 元素。 接著,每個元件會乘以已簽署的縮放比例 GL _ c _ 規模、新增至帶正負號偏差 gl _ c _ 偏差,然後壓制至範圍 [ 0,1 ] (查看 glPixelTransfer) 。
GL _ 亮度 _ ALPHA
每個元素都是一組明亮度/Alpha 配對。 它會轉換為浮點格式,然後藉由針對紅色、綠色和藍色複寫亮度值三次,來組合成 RGBA 元素。 接著,每個元件會乘以已簽署的縮放比例 GL _ c _ 規模、新增至帶正負號偏差 gl _ c _ 偏差,然後壓制至範圍 [ 0,1 ] (查看 glPixelTransfer) 。

type

圖元資料的資料類型。 接受下列符號值: GL _ 未簽署 _ 位元組、gl _ 位元組、GL _ 點陣圖、gl _ 未簽署 _ 短、gl _ 簡短、GL 不 _ 帶正負號 _ int、GL _ int 和 gl _ FLOAT。

圖元

記憶體中影像資料的指標。

傳回值

此函式不會傳回值。

錯誤碼

GlGetError函式可以取出下列錯誤碼。

名稱 意義
GL _ 無效 _ 列舉
目標 不是 GL _ 紋理 _ 1d。
GL _ 無效 _ 列舉
格式 不是可接受的常數。
GL _ 無效 _ 列舉
類型 不是可接受的常數。
GL _ 無效 _ 列舉
類型 為 gl _ 點陣圖, 格式 不是 gl _ 色彩 _ 索引。
GL _ 無效 _ 值
層級 小於零或大於 log2 max,其中 max 是 GL _ 最大紋理大小的傳回值 _ _ 。
GL _ 無效 _ 值
xoffset 小於 b,或 位移 + 寬度 大於 wb(其中 w 是 GL _ 材質 _ 寬度), b 是 _ _ 要修改之紋理影像的 GL 材質框線寬度。
請注意, w 包含框線寬度的兩倍。
GL _ 無效 _ 值
寬度 小於 b,其中 b 是材質陣列的框線寬度。
GL _ 無效 _ 值
框線 不是零或1。
GL _ 不正確 _ 操作
先前的 glTexImage1D 作業未定義 texure 陣列。
GL _ 不正確 _ 操作
呼叫 glBegin 和對應的 glEnd呼叫之間呼叫了函數。

備註

使用 glEnableglDisable 搭配引數 GL 紋理1d,可啟用基本物件的一維紋理 _ _ 。 在紋理期間,指定之材質影像的一部分會對應到每個已啟用的基本類型。 您可以使用 glTexSubImage1D 函式,為紋理指定現有一維紋理影像的連續子影像。

圖元 所參考的材質會將現有材質陣列的區域取代為 xoffsetxoffset + (寬度 1) 包含的 x 索引。 此區域無法在原始指定的材質陣列範圍之外包含任何材質。

指定 寬度 為零的子影像沒有任何作用,也不會產生錯誤。

紋理在色彩索引模式中沒有任何作用。

一般而言,材質影像可以用與 glDrawPixels 命令中的圖元相同的資料格式表示,但 _ 無法使用 gl 樣板 _ 索引和 gl _ 深度 _ 元件。 GlPixelStoreglPixelTransfer模式會以其影響 glDrawPixels 的確切方式來影響紋理影像。

下列函式會取出與 glTexSubImage1D 相關的資訊:

glGetTexImage

具有引數 GL _ 材質 _ 1d 的 glIsEnabled

規格需求

需求
最低支援的用戶端
Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限傳統型應用程式]
標頭
Gl
程式庫
Opengl32 .lib
DLL
Opengl32.dll

另請參閱

glCopyTexImage1D

glCopyTexImage2D

glCopyTexSubImage1D

glCopyTexSubImage2D

glDrawPixels

glEnable

glFog

glGetTexImage

glIsEnabled

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexParameter

glTexSubImage2D