glAccum 函式

glAccum函式會在累積緩衝區上運作。

語法

void WINAPI glAccum(
   GLenum  op,
   GLfloat value
);

參數

op

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

意義
GL_ACCUM
從目前選取用於讀取的緩衝區取得 R、G、B 和 A 值, (請參閱 glReadBuffer) 。 每個元件值會除以 2n 1,其中 n 是配置給目前所選緩衝區中每個色彩元件的位數。 結果是範圍 [0,1] 中的浮點值,其乘以 並新增至累積緩衝區中的對應圖元元件,藉此更新累積緩衝區。
GL_LOAD
類似于GL_ACCUM,不同之處在于累積緩衝區中的目前值不會用於計算新值。 也就是說,來自目前選取緩衝區的 R、G、B 和 A 值會除以 2n 1,乘以 ,然後儲存在對應的累積緩衝區資料格中,覆寫目前的值。
GL_ADD
新增至累積緩衝區中的每個 R、G、B 和 A。
GL_MULT
將累積緩衝區中的每個 R、G、B 和 A 乘以 ,並將縮放元件傳回其對應的累積緩衝區位置。
GL_RETURN
將累積緩衝區值傳送至目前選取用於寫入的色彩緩衝區或緩衝區。 每個 R、G、B 和 A 元件都會乘以 ,然後乘以 2n 1,並限制為範圍 [0, 2n 1 ],並儲存在對應的顯示緩衝區儲存格中。 套用至此傳輸的唯一片段作業是圖元擁有權、剪刀、刪除和色彩寫入遮罩。

value

累積緩衝區作業中使用的浮點值。 op參數會決定如何使用

傳回值

此函式不會傳回值。

錯誤碼

glGetError函式可以擷取下列錯誤碼。

名稱 意義
GL_INVALID_ENUM
op 不是可接受的值。
GL_INVALID_OPERATION
沒有累積緩衝區,或呼叫glBegin的函式glAccum對 glEnd的對應呼叫之間呼叫。

備註

累積緩衝區是擴充範圍色彩緩衝區。 影像不會轉譯到其中。 相反地,轉譯成其中一個色彩緩衝區的影像會在轉譯後新增至累積緩衝區的內容。 您可以藉由累積以不同轉換矩陣產生的影像,來建立點、線條和多邊形) 、動作模糊和欄位深度等效果,例如反鋸齒 (。

累積緩衝區中的每個圖元都包含紅色、綠色、藍色和 Alpha 值。 累積緩衝區中每個元件的位數取決於實作。 您可以呼叫 glGetIntegerv 四次來檢查此號碼,並分別使用引數GL_ACCUM_RED_BITS、GL_ACCUM_GREEN_BITS、GL_ACCUM_BLUE_BITS和GL_ACCUM_ALPHA_BITS。 不過,不論每個元件的位數為何,每個元件所儲存的值範圍都是 [ 1,?1]。 累積緩衝區圖元會對應一對一與框架緩衝區圖元。

glAccum函式會在累積緩衝區上運作。 第一個引數 op是選取累積緩衝區作業的符號常數。 第二個引數 value是要用於該作業的浮點值。 指定五個作業:GL_ACCUM、GL_LOAD、GL_ADD、GL_MULT和GL_RETURN。

所有累積緩衝區作業都受限於目前剪刀器方塊的區域,並套用至每個圖元的紅色、綠色、藍色和 Alpha 元件。 如果 glAccum 作業導致範圍 [ 1,1] 以外的值,則累積緩衝區圖元元件的內容是未定義的。

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

只有目前剪刀式方塊中的圖元會由任何 glAccum 作業更新。

下列函式會擷取 glAccum 函式的相關資訊:

glGet with argument GL_ACCUM_RED_BITS

glGet with argument GL_ACCUM_GREEN_BITS

glGet with argument GL_ACCUM_BLUE_BITS

glGet with argument GL_ACCUM_ALPHA_BITS

規格需求

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

另請參閱

glBegin

glBlendFunc

glClear

glClearAccum

glCopyPixels

glEnd

glGet

glLogicOp

glPixelStore

glPixelTransfer

glReadBuffer

glReadPixels

glScissor

glStencilOp