glStencilOp

glStencilOp 関数はステンシルテスト動作を設定する。

glStencilOp fail, zfail, zpass

fail : [int] ステンシルテスト失敗時の動作。6 つのシンボル定数を受け付ける。GL_KEEP (現在値を保つ)、GL_ZERO (ステンシルバッファ値を 0 にする)、GL_REPLACE (glStencilFunc で指定した ref に設定する)、GL_INCR (現在値をインクリメント。表現可能最大値にクランプ)、GL_DECR (デクリメント。0 にクランプ)、GL_INVERT (ビット反転)。
zfail : [int] ステンシルテストは合格したがデプステストが失敗したときのステンシル動作。fail と同じシンボル定数を受け付ける。
zpass : [int] ステンシルテストとデプステストの両方が合格したとき、またはステンシルテストが合格しデプスバッファが無いかデプステストが無効なときのステンシル動作。fail と同じシンボル定数を受け付ける。

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

解説

glStencilOp 関数はステンシルテスト動作を設定する。

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

[備考]
ステンシリングは z バッファリング同様にピクセル単位で描画を有効/無効にする。OpenGL
の描画プリミティブでステンシルプレーンに描き、その後ジオメトリや画像をレンダリングする際にステンシルプレーンで画面の一部をマスクする。マルチパスレンダリングでデカール、輪郭線、CSG
描画などの特殊効果に使われる。ステンシルテストはステンシルバッファの値と参照値との比較結果に基づきピクセルを条件付きで除外する。glEnable
/ glDisable に GL_STENCIL_TEST を指定して有効化し、glStencilFunc
で制御する。glStencilOp は 3
つの引数で、ステンシリング有効時の格納ステンシル値の扱いを指定する。ステンシルテストが失敗した場合はピクセルのカラー/デプスバッファは変更されず、fail
がステンシルバッファ内容の扱いを指定する。ステンシル値は符号なし整数として扱われ、増減時は 0 と 2^n-1 (n は
GL_STENCIL_BITS) にクランプされる。残り 2 つの引数は後続のデプステストが合格 (zpass) または失敗
(zfail) した場合のステンシル動作を指定する。fail と同じ 6 つのシンボル定数を使う。デプスバッファが無いか無効な場合
zfail は無視され、fail と zpass
がそれぞれステンシルテスト失敗時/合格時の動作を指定する。初期状態ではステンシルテストは無効。ステンシルバッファが無い場合、glStencilOp
の呼び出しに関わらず常に合格扱いとなる。関連情報は glGet (GL_STENCIL_FAIL / PASS_DEPTH_PASS /
PASS_DEPTH_FAIL / BITS) と glIsEnabled (GL_STENCIL_TEST) で取得できる。

情報

プラグイン / モジュール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