我正在嘗試使用模板測驗為 2d 內容裁剪和創建邊框,但它似乎不起作用。可能是平臺問題,我在裝有 MacOS 12.0.1 的 M1 MacBook Air 上運行代碼
從下面的代碼中,我希望有一個帶有 50px 紅色邊框的藍色方塊,但我只得到一個大紅色方塊。
from pyglet import window, gl, shapes, app
win = window.Window(width=800, height=600)
@win.event
def on_draw():
win.clear()
gl.glEnable(gl.GL_STENCIL_TEST)
gl.glStencilMask(gl.GL_TRUE)
gl.glClearStencil(0)
gl.glClear(gl.GL_STENCIL_BUFFER_BIT)
gl.glStencilFunc(gl.GL_NEVER, 1, 0xFF)
gl.glStencilOp(gl.GL_REPLACE, gl.GL_KEEP, gl.GL_KEEP)
square = shapes.Rectangle(x=200, y=200, width=200, height=200, color=(0, 0, 255))
square.draw()
gl.glStencilMask(gl.GL_FALSE)
gl.glStencilFunc(gl.GL_NOTEQUAL, 1, 0xFF)
square2 = shapes.Rectangle(x=150, y=150, width=300, height=300, color=(255, 0, 0))
square2.draw()
gl.glDisable(gl.GL_STENCIL_TEST)
app.run()
uj5u.com熱心網友回復:
該視窗沒有模板緩沖區。無法保證視窗的默認幀緩沖區默認具有模板緩沖區。顯式指定模板緩沖區位(參見pyglet,背景關系配置):
config = gl.Config(double_buffer=True, stencil_size=8)
win = window.Window(width=800, height=600, config=config)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/401006.html
上一篇:VLC庫錯誤;無法將其匯入代碼
