簡介
glGetTexImage 函式返回一個紋理圖像。
語法
void WINAPI glGetTexImage(
GLenum target,
GLint level,
GLenum format,
GLenum type,
GLvoid *pixels
);
參數
目標
指定要獲取的紋理。 接受了 GL_TEXTURE_1D 和 GL_TEXTURE_2D。
級別
所需的圖像的級別的詳細信息數量。 級別 0 是基礎映像級別。 級別 n 是 n 次 Mipmap 減少圖像。
格式
返回的數據的像素格式。 受支持的格式是 GL_RED、 GL_GREEN、 GL_BLUE、 GL_ALPHA、 GL_RGB、 GL_RGBA、 GL_LUMINANCE、 GL_BGR_EXT、 GL_BGRA_EXT 和 GL_LUMINANCE_ALPHA。
類型
一種像素為返回的數據的類型。 GL_UNSIGNED_BYTE、 GL_BYTE、 GL_UNSIGNED_SHORT、 GL_SHORT、 GL_UNSIGNED_INT、 GL_INT 和 GL_FLOAT 的受支持的類型。
像素
返回紋理圖像。 應由 類型 指定的類型的數組的指針。
返回值
返回以下錯誤代碼和他們的條件。
返回代碼
說明
GL_INVALID_ENUM
目標、 格式 或 類型 不被接受的值。
GL_INVALID_VALUE
級別 小於零或大於 日誌 2 (最大),其中 最大值 是 GL_MAX_TEXTURE_SIZE 返回的值。
GL_INVALID_OPERATION
調用 glBegin 和 glEnd 的相應調用之間被調用該函式。
備註
glGetTexImage 函式返回到 像素 的紋理圖像。 目標 參數指定所需的紋理圖像是一個指定的 glTexImage1D (GL_TEXTURE_1D) 或 glTexImage2D (GL_TEXTURE_2D)。 水平 參數指定所需的圖像的級別的詳細信息數量。 格式 和 類型 參數指定的格式和所需的圖像數組的類型。 格式 和 類型 參數的可接受值的說明分別,看到 glTexImage1D 和 glDrawPixels。
glGetTexImage 操作是最明白的考慮所選的內部組件四紋理圖像的圖像的大小是一個 RGBA 顏色緩衝區。 glGetTexImage 的語義,然後相同的 glReadPixels 調用具有相同的 格式 和 類型,用 x 和 y 設定為零 寬度 設定為 (包括框線,如果已指定) 的紋理圖像的寬度和 高度 設定為一個一維圖像或紋理圖像的高度 (包括框線如果已指定) 的二維圖像。
內部的紋理圖像是 RGBA 圖像像素格式 GL_COLOR_INDEX、 GL_STENCIL_INDEX 和 GL_DEPTH_COMPONENT 不被接受,和像素類型 GL_BITMAP 不被接受。
如果所選的紋理圖像並沒有四個組件將套用以下映射。 單組分紋理是被視為紅色 RGBA 緩衝區設定為單組件值和綠色,藍白 alpha 設定為零。
兩個組件紋理被視為 RGBA 緩衝區設定為零,alpha 設定為組件之一,值組件值的紅色和綠色和藍色將設定為零。 最後,三分量紋理是被視為紅色設定為組件為零綠色 RGBA 緩衝區設定為一個藍色設定為兩個,組件的組件和 alpha 設定為零。
要確定所需的 像素 大小,使用 glGetTexLevelParameter 確定了內部的紋理的圖像的尺寸,然後通過所需的 格式 和 類型 的基礎的每個像素的存儲擴展所需的像素數。 一定要考慮到帳戶特別是 GL_PACK_ALIGNMENT 的像素存儲參數。
如果生成了一個錯誤,則是對 像素為單位) 的內容不進行任何更改。