glCopyTexSubImage2D 函式

glCopyTexSubImage2D函式會從 framebuffer 複製二維紋理影像的子影像。

語法

void WINAPI glCopyTexSubImage2D(
   GLenum  target,
   GLint   level,
   GLint   xoffset,
   GLint   yoffset,
   GLint   x,
   GLint   y,
   GLsizei width,
   GLsizei height
);

參數

目標

將變更影像資料的目標。 必須具有值GL_TEXTURE_2D。

level

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

xoffset

紋理陣列中 x 方向的紋素位移。

yoffset

紋理陣列內 Y 方向的紋素位移。

x

要複製之圖元列左下角的視窗 X 平面座標。

y

要複製之圖元列左下角的視窗 Y 平面座標。

width (寬度)

紋理影像的子影像寬度。 指定寬度為零的紋理子影像沒有任何作用。

height (高度)

紋理影像的子影像高度。 指定寬度為零的紋理子影像沒有任何作用。

傳回值

此函式不會傳回值。

錯誤碼

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

Name 意義
GL_INVALID_ENUM
target 不是可接受的值。
GL_INVALID_VALUE
level 小於零或大於 log2 (max) ,其中 max 是傳回GL_MAX_TEXTURE_SIZE的值。
GL_INVALID_VALUE
xoffset小於border或 (xoffsetwidth + ) 大於 (wborder + ) 、yoffset小於border,或 (yoffsetheight + ) 大於 (hborder + ) ,其中w是 GL_TEXTURE_WIDTH 且框線GL_TEXTURE_BORDER。 請注意, w 包含兩倍的 框線 寬度。
GL_INVALID_VALUE
width 小於 框線y 小於 線,其中 框線 是紋理陣列的框線寬度。
GL_INVALID_OPERATION
紋理陣列不是由先前 的 glTexImage1D 作業所定義。
GL_INVALID_OPERATION
函式是在 對 glBegin 的呼叫和 glEnd的對應呼叫之間呼叫。

備註

glCopyTexSubImage2D函式會以目前框架緩衝區的圖元取代二維紋理影像的矩形部分,而不是從主記憶體取代,就像 glTexSubImage2D的情況一樣。

xy視窗座標開頭的圖元矩形,且維度寬度高度會以xoffset 到 xoffset + (寬度的索引xoffset取代紋理陣列的部分 - 1) ,而索引yoffset 到 yoffset + (寬度- 1 ) 層級所指定的 mipmap層級。 紋理陣列中的目的矩形不能包含原始指定之紋理陣列以外的任何紋素。

glCopyTexSubImage2D函式會以與 glCopyPixels相同的方式處理資料列中的圖元,不同之處在于,在圖元的最終轉換之前,所有圖元元件值都會限制在範圍 [0,1] 並轉換成紋理的內部格式,以儲存在紋理陣列中。 圖元排序是以與較低紋理座標組應的 較低 x 座標來決定。 如果目前框架緩衝區之指定資料列中的任何圖元都位於與目前轉譯內容相關聯的視窗外,則其值是未定義的。

如果目前框架緩衝區之指定矩形內的任何圖元都位於與目前轉譯內容相關聯的讀取視窗中,則為這些圖元取得的值是未定義的。 不會變更指定之紋理陣列 的 internalFormatwidthheightborder 參數,或變更為指定之紋理子影像之外的紋素值。

您無法在顯示清單中包含 glCopyTexSubImage2D 的呼叫。

注意

glCopyTexSubImage2D函式僅適用于 OpenGL 1.1 版或更新版本。

文字在色彩索引模式中沒有任何作用。 glPixelStoreglPixelTransfer函式會以確切方式影響使用glDrawPixels繪製圖元的方式影響紋理影像。

下列函式會擷 取與 glCopyTexSubImage2D相關的資訊:

glGetTexImage

glIsEnabled with argument GL_TEXTURE_2D

規格需求

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

另請參閱

glBegin

glCopyPixels

glCopyTexSubImage1D

glDrawPixels

glEnd

glFog

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage2D

glTexSubImage2D

glTexParameter