glAccum 函式

GlAccum 函數會在累積緩衝區上運作。

語法

void WINAPI glAccum(
   GLenum  op,
   GLfloat value
);

參數

op

累積緩衝區作業。 接受的符號常數如下所示。

意義
GL _ ACCUM
從目前選取要讀取的緩衝區取得 R、G、B 和值 (參閱 glReadBuffer) 。 每個元件值都除以 2 n 1,其中 n 是配置給目前所選緩衝區中每個色彩元件的位數。 結果是範圍0,1的浮點值, [ ] 會乘以 並加入至累積緩衝區中的對應圖元元件,藉此更新累積緩衝區。
GL _ 負載
類似于 GL _ ACCUM,不同之處在于累積緩衝區中的目前值不會用於計算新值。 也就是說,R、G、B 和目前所選緩衝區的值會除以 2 n 1、乘以 ,然後儲存在對應的累積緩衝區資料格中,以覆寫目前的值。
GL _ 新增
加入至累積緩衝區中的每個 R、G、B 和 A。
GL _ MULT
以傳 方式將累積緩衝區中的每個 R、G、B 和 A 相乘,並將縮放的元件傳回至其對應的累積緩衝區位置。
GL _ 退貨
將累積的緩衝區值傳輸到目前選取要寫入的色彩緩衝區或緩衝區。 每個 R、G、B 和 A 元件都會乘以 value,然後乘以 2 n 1,壓制至範圍 [ 0,2 n 1 ] ,並儲存在對應的顯示緩衝區資料格中。 套用到此傳輸的唯一片段作業是圖元擁有權、剪下、遞色和色彩 writemasks。

value

在累積緩衝區作業中使用的浮點值。 Op 參數會決定 的使用方式。

傳回值

此函式不會傳回值。

錯誤碼

GlGetError函式可以取出下列錯誤碼。

Name 意義
GL _ 無效 _ 列舉
op 不是可接受的值。
GL _ 不正確 _ 操作
沒有累積緩衝區,或呼叫 glBegin和對應的 glEnd呼叫之間呼叫了函數 glAccum

備註

累積緩衝區是延伸範圍的色彩緩衝區。 影像不會轉譯到其中。 相反地,轉譯成其中一個色彩緩衝區的影像會在轉譯之後加入累積緩衝區的內容中。 您可以藉由使用不同的轉換矩陣產生的影像累積,來建立點、線條和多邊形的消除鋸齒 (、曲線) 、運動模糊和欄位深度等效果。

累積緩衝區中的每個圖元都是由紅色、綠色、藍色和 Alpha 值所組成。 累積緩衝區中每個元件的位數取決於執行量。 您可以藉由呼叫 glGetIntegerv 四次,分別使用引數 GL _ ACCUM RED _ bit _ 、GL _ ACCUM _ 綠 BIT _ 、gl _ ACCUM _ BLUE _ bits 和 gl _ ACCUM _ ALPHA _ bit 來檢查此數目。 但是,不論每個元件的位數為何,每個元件儲存的值範圍都是 [ 1,? 1 ] 。 累積的緩衝區圖元會以畫面格緩衝區圖元為一對一對應。

GlAccum 函數會在累積緩衝區上運作。 第一個引數 op 是選取累積緩衝區作業的符號常數。 第二個引數( value)是要在該作業中使用的浮點值。 指定了五個作業: GL _ ACCUM、gl _ LOAD、gl _ ADD、GL _ MULT 和 gl _ 退回。

所有累積的緩衝區作業僅限於目前剪下方塊的區域,並與每個圖元的紅色、綠色、藍色和 Alpha 元件相同套用。 如果 glAccum 作業產生的值超出範圍 [ 1,1,則會定義累積緩衝區圖元元件的內容 ] 。

若要清除累積緩衝區,請使用 glClearAccum 函式來指定 R、G、B 和值,以將其設定為,併發出 glClear 函數並啟用累積緩衝區。

任何 glAccum 作業都只會更新目前剪式方塊內的圖元。

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

glGet與引數 GL _ ACCUM _ RED bit _

glGet 與引數 GL _ ACCUM _ 綠 _ 位

glGet 與引數 GL _ ACCUM _ BLUE _ BITS

glGet 與引數 GL _ ACCUM _ ALPHA _ 位

規格需求

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

另請參閱

glBegin

glBlendFunc

glClear

glClearAccum

glCopyPixels

glEnd

glGet

glLogicOp

glPixelStore

glPixelTransfer

glReadBuffer

glReadPixels

glScissor

glStencilOp