glAccum

glAccum 関数はアキュムレーションバッファに対して操作を行う。

glAccum op, value

op : [int] アキュムレーションバッファの操作。以下のシンボル定数を受け付ける。GL_ACCUM: 現在読み取り対象として選択されているバッファから R、G、B、A の値を取得する (glReadBuffer 参照)。各成分値を 2^n-1 で除算し (n は現在選択中のバッファで各色成分に割り当てられたビット数)、得られた [0,1] 範囲の浮動小数点値を value で乗算してアキュムレーションバッファの対応ピクセル成分に加算する。GL_LOAD: GL_ACCUM と同様だが、アキュムレーションバッファの現在値を計算に使用しない。すなわち現在選択中のバッファからの値を 2^n-1 で除算し value を乗じて対応するセルに格納し、現在値を上書きする。GL_ADD: アキュムレーションバッファ内の各 R、G、B、A に value を加算する。GL_MULT: 各 R、G、B、A に value を乗算し、スケール後の値を対応する場所に戻す。GL_RETURN: アキュムレーションバッファの値を現在書き込み対象のカラーバッファに転送する。各成分に value を乗算し、さらに 2^n-1 を乗算して [0, 2^n-1] にクランプし対応するディスプレイバッファセルに格納する。この転送時に適用されるフラグメント操作は、ピクセル所有権、シザー、ディザリング、カラー書き込みマスクのみである。
value : [float] アキュムレーションバッファ操作に使用する浮動小数点値。op パラメータが value の使われ方を決定する。

(プラグイン / モジュール : opengl32.dll)

解説

glAccum 関数はアキュムレーションバッファに対して操作を行う。

[戻り値]
この関数は値を返さない。

[備考]

アキュムレーションバッファは拡張レンジのカラーバッファである。直接画像をレンダリングするのではなく、カラーバッファにレンダリングされた画像を描画後にアキュムレーションバッファの内容に加算する。異なる変換行列で生成した画像を累積することで、アンチエイリアシング
(点・線・ポリゴン)、モーションブラー、被写界深度などの効果を作れる。各ピクセルは R、G、B、A 値から成る。1
成分あたりのビット数は実装依存で、glGetIntegerv を GL_ACCUM_RED_BITS / GREEN / BLUE /
ALPHA_BITS で呼び出して取得できる。ビット数によらず、各成分の値範囲は [-1, 1]
である。アキュムレーションバッファのピクセルはフレームバッファのピクセルと 1 対 1 で対応する。第 1 引数 op
は操作を選択するシンボル定数、第 2 引数 value はその操作で使用する浮動小数点値である。操作は
GL_ACCUM、GL_LOAD、GL_ADD、GL_MULT、GL_RETURN の 5
種類。全ての操作は現在のシザー領域に制限され、各ピクセルの R、G、B、A に同じく適用される。操作結果が [-1, 1]
の範囲外となった場合、ピクセル成分の内容は未定義である。アキュムレーションバッファをクリアするには glClearAccum で
R、G、B、A 値を指定し、glClear をアキュムレーションバッファ有効で実行する。関連情報は glGet
(GL_ACCUM_*_BITS) で取得できる。

情報

プラグイン / モジュールopengl32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の opengl32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_opengl32_gen2.hs