glStencilFunc 函式

GlStencilFunc 函數會設定樣板測試的函數和參考值。

語法

void WINAPI glStencilFunc(
   GLenum func,
   GLint  ref,
   GLuint mask
);

參數

func

測試函數。 下列八個權杖都有效。

意義
GL _ 永不
一律會失敗。
GL _ LESS
如果 (ref & mask) < (樣板 & 遮罩) ,則傳遞。
GL _ LEQUAL
如果 (ref & mask) = (樣板 & 遮罩) ,則傳遞。
GL _ 更高
如果 (ref & mask) > (樣板 & 遮罩) ,則傳遞。
GL _ GEQUAL
如果 (ref & mask) = (樣板 & 遮罩) ,則傳遞。
GL _ 相等
如果 (ref & mask) = (樣板 & 遮罩) ,則傳遞。
GL _ NOTEQUAL
如果 (ref & 遮罩) ,則傳遞? (樣板 & 遮罩) 。
GL _ 一律
一律傳遞。

ref

樣板測試的參考值。 Ref 參數壓制至範圍 [ 0,2 n 1 ] ,其中 n 是樣板緩衝區中的 bitplanes 數目。

面具

當測試完成時 ,同時 具有參考值和儲存的樣板值的遮罩。

傳回值

此函式不會傳回值。

錯誤碼

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

Name 意義
GL _ 無效 _ 列舉
func 不是八個接受值的其中一個。
GL _ 不正確 _ 操作
呼叫 glBegin 和對應的 glEnd呼叫之間呼叫了函數。

備註

Stenciling,例如 z 緩衝,可啟用和停用以每圖元為基礎的繪圖。 您可以使用 OpenGL 繪圖基本專案來繪製到樣板平面,然後轉譯幾何和影像,使用樣板平面來遮蔽畫面的部分。 Stenciling 通常用於 multipass 轉譯演算法,以達成特殊效果,例如 decals、大綱和具建設性的純幾何呈現。

樣板測試會根據參考值與樣板緩衝區中的值之間的比較結果,有條件地排除圖元。 GlEnableglDisable會使用引數 GL 樣板測試來啟用測試 _ _ 。 根據樣板測試結果所採取的動作會以 glStencilOp指定。

Func 參數是決定樣板比較函數的符號常數。 它會接受上面所示的八個值之一。 Ref 參數是用於樣板比較的整數參考值。 它會壓制至範圍 [ 0,2 n 1 ] ,其中 n 是樣板緩衝區中的 bitplanes 數目。 Mask 參數是使用參考值和預存樣板值的位 And ed,並參與比較的 ed 值。

如果樣板表示儲存在對應之樣板緩衝區位置的值 ,則上述 清單會顯示 func 可指定之每個比較函式的效果。 只有在比較成功時,才會將圖元傳遞給點陣化進程中的下一個階段 (請參閱 glStencilOp) 。 所有測試都會將 樣板值視為 範圍 [ 0,2 n 1 的不帶正負號的整數, ] 其中 n 是樣板緩衝區中的 bitplanes 數目。

一開始,樣板測試已停用。 如果沒有樣板緩衝區,則不會進行任何樣板修改,如同樣板測試一律會通過。

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

具有引數 GL _ 樣板 _ FUNC 的 glGet

具有引數 GL _ 範本 _ 值 _ 遮罩的 glGet

具有引數 GL _ 樣板 _ REF 的 glGet

具有引數 GL _ 樣板 _ 位的 glGet

具有引數 GL _ 樣板 _ 測試的 glIsEnabled

規格需求

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

另請參閱

glAlphaFunc

glBegin

glBlendFunc

glDepthFunc

glEnable

glEnd

glIsEnabled

glLogicOp

glStencilOp