glPixelStoref 函式
設定圖元儲存模式。
語法
void WINAPI glPixelStoref(
GLenum pname,
GLfloat param
);
參數
-
pname
-
要設定之參數的符號名稱。 其中六個儲存體參數會影響將圖元資料傳回至用戶端記憶體的方式,因此僅適用于 glReadPixels 命令。 如下所示:
儲存體參數 描述 GL_PACK_SWAP_BYTES 如果為 true,則會反轉多位元組色彩元件的位元組順序、深度元件、色彩索引或樣板索引。 也就是說,如果四位元組元件是由 位元組 b0 、 b1 、 b2 、 b3 所組成,則會以 b3、 b2 、b 1 、 b1 、 b0 的形式儲存在記憶體中,如果GL_PACK_SWAP_BYTES為 true。 GL_PACK_SWAP_BYTES對圖元內元件的記憶體順序沒有任何影響,只會影響元件或索引內的位元組順序。 例如,不論GL_PACK_SWAP_BYTES的值為何,GL_RGB格式圖元的三個元件一律會以紅色第一個、綠色秒和藍色第三個元件儲存。 GL_PACK_LSB_FIRST 如果為 true,則位會在位元組內排序,從最小顯著到最顯著;否則,每個位元組中的第一個位是最重要的位。 此參數僅適用于點陣圖資料。 GL_PACK_ROW_LENGTH 如果大於零,GL_PACK_ROW_LENGTH定義列中的圖元數目。 如果資料列的第一個圖元放在記憶體中的位置 p,則會略過方程式,以略過方程式,以顯示 [newline] 元件或索引,其中n是圖元中的元件或索引數目,l是資料 (列中的圖元數目,如果其大於零,則為圖元常式的 width 引數,否則為圖元常式) ,a 是 gl-pack-alignment 的值,而 s是單一元件的大小,以位元組為單位,如果<為 s,則為單一元件的大小,以位元組為單位 (。 則如同 = s) 。 如果是 1 位值,則會略過方程式來取得
元件或索引。 此描述中的字 組元件 是指非索引值紅色、綠色、藍色、Alpha 和深度。 例如,儲存體格式GL_RGB每個圖元有三個元件:第一個紅色、綠色,最後是藍色。GL_PACK_SKIP_PIXELS 和
GL_PACK_SKIP_ROWS這些值是提供給程式設計人員的便利性;它們不會提供任何無法複製的功能,只要遞增傳遞至 glReadPixels 的指標即可。 將GL_PACK_SKIP_PIXELS設定為 i 相當於以 i n 個元件或索引遞增指標,其中 n 是每個圖元中的元件或索引數目。 將GL_PACK_SKIP_ROWS設定為 j 相當於以 j k 元件或索引遞增指標,其中 k 是每個資料列的元件或索引數目,如上述GL_PACK_ROW_LENGTH區段中所計算。 GL_PACK_ALIGNMENT 指定記憶體中每個圖元資料列開頭的對齊需求。 允許的值是 1 (位元組對齊) ,2 個 (列對齊偶數位節) ,4 個 (字對齊) ,而 8 個 (列會從雙字界限開始) 。 其他六個儲存體參數會影響從用戶端記憶體讀取圖元資料的方式。 這些值對於glDrawPixels、glTexImage1D、glTexImage2D、glBitmap和glPolygonStipple而言相當重要。 如下所示:
儲存體參數 描述 GL_UNPACK_SWAP_BYTES 如果為 true,則會反轉多位元組色彩元件的位元組順序、深度元件、色彩索引或樣板索引。 也就是說,如果四位元組元件是由 位元組 b0 、 b1 、 b2 、 b3 所組成,則會以 b3、 b2 、b 1 、 b1 、 b0 的形式儲存在記憶體中,如果GL_UNPACK_SWAP_BYTES為 true。 GL_UNPACK_SWAP_BYTES對圖元內元件的記憶體順序沒有任何影響,只會影響元件或索引內的位元組順序。 例如,不論GL_UNPACK_SWAP_BYTES的值為何,GL_RGB格式圖元的三個元件一律會以紅色第一個、綠色秒和藍色第三個元件儲存。 GL_UNPACK_LSB_FIRST 如果為 true,則位會在位元組內排序,從最小顯著到最顯著;否則,每個位元組中的第一個位是最重要的位。 這僅適用于點陣圖資料。 GL_UNPACK_ROW_LENGTH 如果大於零,GL_UNPACK_ROW_LENGTH定義列中的圖元數目。 如果資料列的第一個圖元放在記憶體中的位置 p,則會略過方程式,以略過方程式,以顯示 [newline] 元件或索引,其中n是圖元中的元件或索引數目,l是資料 (列中的圖元數目,如果其大於零,則為圖元常式的 width 引數,否則為圖元常式) ,a 是 gl-pack-alignment 的值,而 s是單一元件的大小,以位元組為單位,如果<為 s,則為單一元件的大小,以位元組為單位 (。 則如同 = s) 。 如果是 1 位值,則會略過方程式來取得
元件或索引。 此描述中的字 組元件 是指非索引值紅色、綠色、藍色、Alpha 和深度。 例如,儲存體格式GL_RGB每個圖元有三個元件:第一個紅色、綠色,最後是藍色。GL_UNPACK_SKIP_PIXELS 和
GL_UNPACK_SKIP_ROWS這些值是提供給程式設計人員的便利性;它們不會提供任何無法複製的功能,只要遞增傳遞至glDrawPixels、glTexImage1D、glTexImage2D、glBitmap或glPolygonStipple的指標即可。 將GL_UNPACK_SKIP_PIXELS設定為 i 相當於將指標遞增 為 i n 元件或索引,其中 n 是每個圖元中的元件或索引數目。 將 GL_UNPACK_SKIP_ROWS設定為 j 相當於以 j k 元件或索引遞增指標,其中 k 是每個資料列的元件或索引數目,如上GL_UNPACK_ROW_LENGTH區段中所計算。 GL_UNPACK_ALIGNMENT 指定記憶體中每個圖元資料列開頭的對齊需求。 允許的值是 1 (位元組對齊) ,2 個 (列對齊偶數位節) ,4 個 (字對齊) ,而 8 個 (列會從雙字界限開始) 。 -
param
-
pname設定為 的值。
傳回值
此函式不會傳回值。
備註
glPixelStore函式會設定會影響後續glDrawPixels和glReadPixels作業的圖元儲存模式,以及解除封裝多邊形 stipple 模式, (請參閱glPolygonStipple) , 點陣圖 (請參閱glBitmap) 和紋理圖樣 (請參閱glTexImage1D、glTexImage2D、glTexSubImage1D和glTexSubImage2D) 。
下表提供每個可使用 glPixelStore設定之儲存體參數的有效值類型、初始值和範圍。
Pname | 類型 | 初始值 | 有效範圍 |
---|---|---|---|
GL_PACK_SWAP_BYTES | Boolean | false | true 或 false |
GL_PACK_SWAP_BYTES | Boolean | false | true 或 false |
GL_PACK_ROW_LENGTH | 整數 | 0 | [0,?) |
GL_PACK_SKIP_ROWS | 整數 | 0 | [0,?) |
GL_PACK_SKIP_PIXELS | 整數 | 0 | [0,?) |
GL_PACK_ALIGNMENT | 整數 | 4 | 1、2、4 或 8 |
GL_UNPACK_SWAP_BYTES | Boolean | false | true 或 false |
GL_UNPACK_LSB_FIRST | Boolean | false | true 或 false |
GL_UNPACK_ROW_LENGTH | 整數 | 0 | [0,?) |
GL_UNPACK_SKIP_ROWS | 整數 | 0 | [0,?) |
GL_UNPACK_SKIP_PIXELS | 整數 | 0 | [0,?) |
GL_UNPACK_ALIGNMENT | 整數 | 4 | 1、2、4 或 8 |
glPixelStoref 函式可用來設定任何圖元存放區參數。 如果參數類型為 Boolean,且 param 為 0.0,則參數為 false;否則會設定為 true。 如果 pname 是整數類型參數, 則 param 會四捨五入為最接近的整數。
同樣地, glPixelStorei 函式也可以用來設定任何圖元存放區參數。 如果 param 為 0 且為 true,布林參數會設定為 false。 參數會先轉換成浮點,再指派給實值參數。
當 glDrawPixels、glReadPixels、glTexImage1D、glTexImage2D、glBitmap或glPolygonStipple放置於顯示清單控制記憶體資料的解譯時,圖元儲存模式就會生效。 執行顯示清單時生效的圖元儲存模式並不重要。
下列函式會擷 取與 glPixelStore相關的資訊:
glGet with argument GL_PACK_SWAP_BYTES
glGet with argument GL_PACK_LSB_FIRST
具有引數的glGet GL_PACK_ROW_LENGTH
具有引數的glGet GL_PACK_SKIP_ROWS
glGet with argument GL_PACK_SKIP_PIXELS
glGet with argument GL_PACK_ALIGNMENT
具有引數的glGet GL_UNPACK_SWAP_BYTES
glGet with argument GL_UNPACK_LSB_FIRST
glGet with argument GL_UNPACK_ROW_LENGTH
glGet with argument GL_UNPACK_SKIP_ROWS
glGet with argument GL_UNPACK_SKIP_PIXELS
glGet with argument GL_UNPACK_ALIGNMENT
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows 2000 Server [僅限桌面應用程式] |
標頭 |
|
程式庫 |
|
DLL |
|