glGetTexImage 函式
glGetTexImage函式會傳回紋理影像。
語法
void WINAPI glGetTexImage(
GLenum target,
GLint level,
GLenum format,
GLenum type,
GLvoid *pixels
);
參數
-
目標
-
指定要取得的紋理。 接受GL_TEXTURE_1D和GL_TEXTURE_2D。
-
level
-
所需影像的詳細資料層級編號。 層級 0 是基底映射層級。 層級 n 是 第 n個 mipmap 縮減影像。
-
format
-
傳回資料的像素格式。 支援的格式為GL_RED、GL_GREEN、GL_BLUE、GL_ALPHA、GL_RGB、GL_RGBA、GL_LUMINANCE、GL_BGR_EXT、GL_BGRA_EXT和GL_LUMINANCE_ALPHA。
-
type
-
所傳回資料的圖元類型。 支援的類型包括GL_UNSIGNED_BYTE、GL_BYTE、GL_UNSIGNED_SHORT、GL_SHORT、GL_UNSIGNED_INT、GL_INT和GL_FLOAT。
-
圖元
-
傳回紋理影像。 應該是 型別所指定型別陣列的指標。
傳回值
此函式不會傳回值。
錯誤碼
glGetError函式可以擷取下列錯誤碼。
名稱 | 意義 |
---|---|
|
目標、 格式或 類型 不是可接受的值。 |
|
level 小於零或大於 log2 (max) ,其中 max 是傳回GL_MAX_TEXTURE_SIZE的值。 |
|
在 對 glBegin 的呼叫與 glEnd 的對應呼叫之間呼叫函式。 |
備註
glGetTexImage函式會將紋理影像傳回為圖元。 目標參數會指定所需的紋理影像是glTexImage1D所指定的影像 (GL_TEXTURE_1D) 或glTexImage2D (GL_TEXTURE_2D) 。 level參數會指定所需影像的詳細資料層級編號。 格式和類型參數會指定所需影像陣列的格式和類型。 如需 格式 和 類型 參數可接受的值描述,請參閱 glTexImage1D 和 glDrawPixels。
將選取的內部四元件紋理影像視為影像大小的 RGBA 色彩緩衝區,即可充分瞭解 glGetTexImage 的作業。 glGetTexImage的語意接著會與具有相同格式和類型的glReadPixels相同、x和y設定為零、寬度設定為包含框線的寬度, (包括框線,如果指定) ,而高度設定為 1D 影像的 1D 影像,或設定為紋理影像的高度, (包括框線, 如果 2D 影像) 指定一個。
由於內部紋理影像是 RGBA 影像,因此不接受像素格式GL_COLOR_INDEX、GL_STENCIL_INDEX和GL_DEPTH_COMPONENT,且不接受圖元類型GL_BITMAP。
如果選取的紋理影像不包含四個元件,則會套用下列對應。 單一元件紋理會被視為 RGBA 緩衝區,並將紅色設定為單一元件值,而綠色、藍色和 Alpha 設定為零。
雙元件紋理會被視為 RGBA 緩衝區,並將紅色設定為元件零的值、Alpha 設定為元件 1 的值,而綠色和藍色設定為零。 最後,會將三個元件紋理視為 RGBA 緩衝區,並將紅色設定為零、綠色設定為元件 1、藍色設定為第二個元件,而 Alpha 設定為零。
若要判斷 所需的圖元大小,請使用 glGetTexLevelParameter 來確認內部紋理影像的維度,然後根據 格式 和 類型,依每個圖元所需的儲存空間來調整所需的圖元數目。 請務必考慮圖元儲存體參數,特別是GL_PACK_ALIGNMENT。
如果產生錯誤,則不會對 圖元的內容進行任何變更。
下列函式會擷取 與 glGetTexImage相關的資訊:
glGet 搭配引數GL_PACK_ALIGNMENT和其他專案
glGetTexLevelParameter 搭配引數GL_TEXTURE_WIDTH
glGetTexLevelParameter 搭配引數GL_TEXTURE_HEIGHT
glGetTexLevelParameter 搭配引數GL_TEXTURE_BORDER
glGetTexLevelParameter 搭配引數GL_TEXTURE_COMPONENTS
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows 2000 Server [僅限傳統型應用程式] |
標頭 |
|
程式庫 |
|
DLL |
|