glPixelStorei 函式

設定圖元儲存模式。

語法

void WINAPI glPixelStorei(
   GLenum pname,
   GLint  param
);

參數

pname

要設定之參數的符號名稱。 有六個儲存參數會影響圖元資料傳回給用戶端記憶體的方式,因此只有 glReadPixels 命令才有意義。 它們如下所示。

儲存體參數 描述
GL _ 套件 _ 交換 _ 位元組 若為 true,則會反轉多位元組色彩元件、深度元件、色彩索引或樣板索引的位元組順序。 亦即,如果四個位元組的元件是由位元組 b 0、 b 1、 b 2、 b 3 所組成,它會儲存在記憶體中 b 3、 b 2、 b 1、 b 0 (如果 GL _ 套件 _ 交換位元組為 true) _ 。 GL _ 套件 _ 交換 _ 位元組不會影響圖元內元件的記憶體順序(僅限於元件或索引內的位元組順序)。 例如, _ 不論 gl _ 套件交換位元組的值為何,gl RGB 格式圖元的三個元件一律會儲存紅色的第一個、綠色秒和藍色三個 _ 元件 _ 。
GL _ 套件 _ LSB _ FIRST 若為 true,則會將位從最不重要到最重要的位元組內排序。否則,每個位元組中的第一個位是最重要的一個。 此參數對點陣圖資料而言是很重要的。
GL _ 套件資料 _ 列 _ 長度 如果大於零,則 [GL _ 套件資料列長度] 會定義資料 _ _ 列中的圖元數目。 如果資料列的第一個圖元放在記憶體中的位置 p,則會略過指出下一個資料列之  第一個 GL_PACK_ROW_LENGTH 圖元位置的方程式,以取得下一個資料列的第一個圖元位置。 [新行 ] 元件或索引,其中 n 是圖元中的元件或索引的數目。 l 是資料列中的圖元數, - - - 如果大於零,則為圖元常式的寬度引數 (,否則為) 的圖元常式的寬度引數, a 是 gl 套件對齊的值, - - 而 s 則是單一元件的大小(以位元組為單位),如果是 < 則它就像 a ( = ) 一樣。 在1位值的案例中,會略過  顯示 GL_PACK_ROW_LENGTH 中下一個資料列位置的方程式來取得下一個資料列的位置。
元件或索引。 這項描述中的單字 元件 是指紅色、綠色、藍色、Alpha 和 depth 的 nonindex 值。 例如,儲存體格式 GL _ RGB,每圖元有三個元件:第一個紅色、綠色和最後藍色。
GL _ 套件 _ 略過 _ 圖元和
GL _ 套件 _ 略過資料 _ 列
提供這些值是為了方便程式設計師使用;它們不會藉由遞增傳遞給 glReadPixels的指標,而提供不重複的功能。 將 GL _ 套件 _ 的設定略過 _ 圖元相當於依 i n 個元件或索引遞增指標,其中 n 是每個圖元中的元件或索引數目。 設定 GL _ 套件將資料 _ 列略過的資料 _ 列相當於以 j k 元件或索引遞增指標,其中 k 是每個資料列的元件或索引的數目,如上方的 [GL 套件資料 _ _ 列長度] 區段中所計算 _ 。
GL _ 套件 _ 對齊 指定記憶體中每個圖元資料列開始的對齊需求。 允許的值為 1 (位元組對齊) 、對應到偶數位節的 2 (資料列) 、4 (文字對齊) ,以及 8 (資料列會在雙字邊界) 開始。

其他六個儲存參數會影響從用戶端記憶體讀取圖元資料的方式。 這些值對 glDrawPixelsglTexImage1DglTexImage2DglBitmapglPolygonStipple而言很重要。 如下所示:

儲存體參數 描述
GL _ 解壓縮 _ 交換 _ 位元組 若為 true,則會反轉多位元組色彩元件、深度元件、色彩索引或樣板索引的位元組順序。 亦即,如果四個位元組的元件是由位元組 b 0、 b 1、 b 2、 b 3 所組成,它會儲存在記憶體中 b 3、 b 2、 b 1、 b 0 (如果 GL _ 解壓縮 _ 交換 _ 位元組為 true)。 GL _ 解壓縮 _ 交換 _ 位元組不會影響圖元內元件的記憶體順序,而只會影響元件或索引內的位元組順序。 例如,每個 GL RGB 格式圖元的三個元件 _ 一律會以紅色的第一個、綠色秒和藍色三個元件儲存,不論 GL 的值是否為 gl _ 解壓縮的 _ _ 位元組。
GL _ _ 先解壓縮 LSB _ 若為 true,則會將位從最不重要到最重要的位元組內排序。否則,每個位元組中的第一個位是最重要的一個。 這對點陣圖資料而言是很重要的。
GL 將資料 _ _ 列 _ 長度解壓縮 如果大於零,則 GL _ 解壓縮資料 _ 列 _ 長度會定義資料列中的圖元數目。 如果資料列的第一個圖元放在記憶體中的位置 p,則會略過指出下一個資料列之  第一個 GL_UNPACK_ROW_LENGTH 圖元位置的方程式,以取得下一個資料列的第一個圖元位置。 [新行 ] 元件或索引,其中 n 是圖元中的元件或索引的數目。 l 是資料列中的圖元數, - - - 如果大於零,則為圖元常式的寬度引數 (,否則為) 的圖元常式的寬度引數, a 是 gl 套件對齊的值, - - 而 s 則是單一元件的大小(以位元組為單位),如果是 < 則它就像 a ( = ) 一樣。 在1位值的案例中,會略過  顯示 GL_UNPACK_ROW_LENGTH 中下一個資料列位置的方程式來取得下一個資料列的位置。
元件或索引。 這項描述中的單字 元件 是指紅色、綠色、藍色、Alpha 和 depth 的 nonindex 值。 例如,儲存體格式 GL _ RGB,每圖元有三個元件:第一個紅色、綠色和最後藍色。
GL _ 解壓縮 _ SKIP _ 圖元
GL _ 解壓縮 _ 略過資料 _ 列
提供這些值是為了方便程式設計師使用;它們不會藉由遞增傳遞至 glDrawPixelsglTexImage1DglTexImage2DglBitmapglPolygonStipple的指標,而提供不重複的功能。 將 GL _ 解壓縮 _ _ 的圖元設定為 i 相當於依 i n 個元件或索引遞增指標,其中 n 是每個圖元中的元件或索引數目。 將 GL 解除封裝 _ _ 略過的資料列, _ 相當於以 j k 元件或索引遞增指標,其中 k 是每個資料列的元件或索引數目,如上所示,在 GL 解除封裝資料 _ _ 列 _ 長度區段中計算。
GL _ 解壓縮 _ 對齊 指定記憶體中每個圖元資料列開始的對齊需求。 允許的值為 1 (位元組對齊) 、對應到偶數位節的 2 (資料列) 、4 (文字對齊) ,以及 8 (資料列會在雙字邊界) 開始。

param

Pname 設定為的值。

傳回值

此函式不會傳回值。

備註

GlPixelStore 函式會設定圖元儲存模式,其會影響後續 glDrawPixelsglReadPixels的作業,以及將多邊形 stipple 模式解壓縮 (查看 glPolygonStipple) 、點陣圖 (查看 glBitmap) 和材質模式 (查看 glTexImage1DglTexImage2DglTexSubImage1DglTexSubImage2D) 。

下表提供每個可以使用 glPixelStore 設定的儲存參數的類型、初始值和有效值範圍。

Pname 類型 初始值 有效範圍
GL _ 套件 _ 交換 _ 位元組 Boolean false true 或 false
GL _ 套件 _ 交換 _ 位元組 Boolean false true 或 false
GL _ 套件資料 _ 列 _ 長度 整數 0 [0,? )
GL _ 套件 _ 略過資料 _ 列 整數 0 [0,? )
GL _ 套件 _ 略過 _ 圖元 整數 0 [0,? )
GL _ 套件 _ 對齊 整數 4 1、2、4或8
GL _ 解壓縮 _ 交換 _ 位元組 Boolean false true 或 false
GL _ _ 先解壓縮 LSB _ Boolean false true 或 false
GL 將資料 _ _ 列 _ 長度解壓縮 整數 0 [0,? )
GL _ 解壓縮 _ 略過資料 _ 列 整數 0 [0,? )
GL _ 解壓縮 _ SKIP _ 圖元 整數 0 [0,? )
GL _ 解壓縮 _ 對齊 整數 4 1、2、4或8

GlPixelStoref函數可以用來設定任何圖元存放區參數。 如果參數類型為布林值,而且如果 param 為0.0,則參數為 false;否則,它會設定為 true。 如果 pname 是整數類型參數,則會將 param 四捨五入至最接近的整數。

同樣地, glPixelStorei 函數也可以用來設定任何圖元存放區參數。 如果 param 為0,則布林參數設定為 false,否則為 true。 Param 參數在指派給實值參數之前,會先轉換成浮點數。

glDrawPixelsglReadPixelsglTexImage1DglTexImage2DglBitmapglPolygonStipple 放置在顯示清單中,以控制記憶體資料的轉譯時,會生效的圖元儲存模式。 執行顯示清單時,作用中的圖元儲存模式並不重要。

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

glGet 與引數 GL _ 套件 _ 交換 _ 位元組

glGet 與引數 GL _ 套件 _ LSB _ FIRST

具有引數 GL _ 資料 _ 列 _ 長度的 glGet

具有引數 GL 套件的 glGet _ _ 略過資料 _ 列

具有引數 GL 套件的 glGet _ _ 略過 _ 圖元

具有引數 GL _ 套件 _ 對齊的 glGet

具有引數 GL _ 解壓縮 _ 交換 _ 位元組的 glGet

具有引數 GL 的 glGet _ _ 先解壓縮 LSB _

具有引數 GL 的 glGet 將資料 _ _ 列 _ 長度解壓縮

具有引數 GL 的 glGet 會 _ _ 略過資料 _ 列

具有引數 GL 的 glGet 會將 _ _ 略過 _ 圖元解壓縮

具有引數 GL _ 解壓縮 _ 對齊的 glGet

規格需求

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

另請參閱

glBegin

glBitmap

glDrawPixels

glEnd

glPixelMap

glPixelTransfer

glPixelZoom

glPolygonStipple

glReadPixels

glTexImage1D

glTexImage2D