Here is my code simplified:
from panda3d.core import *
from direct.gui.DirectGui import *
from direct.interval.LerpInterval import *
import direct.directbase.DirectStart
constantOneStencil = StencilAttrib.make(1, StencilAttrib.SCFAlways,
StencilAttrib.SOZero, StencilAttrib.SOReplace,
StencilAttrib.SOReplace, 1, 0, 1)
stencilReader = StencilAttrib.make(1, StencilAttrib.SCFEqual,
StencilAttrib.SOKeep, StencilAttrib.SOKeep,
StencilAttrib.SOKeep, 1, 1, 0)
cm = CardMaker("cardmaker")
cm.setFrame(-.5, .5, -.5, .5)
viewingSquare = render.attachNewNode(cm.generate())
viewingSquare.reparentTo(base.camera)
viewingSquare.setPos(0, 5, 0)
viewingSquare.node().setAttrib(constantOneStencil)
viewingSquare.node().setAttrib(ColorWriteAttrib.make(0))
viewingSquare.setBin('background', 0)
viewingSquare.setDepthWrite(0)
def changestencil(t):
cm.setFrame(-t,t,-t,t) # not working as expected
print(t)
anim = LerpFunc(changestencil,fromData=0.5,toData=1,duration=1)
button = DirectButton(scale=6,command=anim.start)
button.node().setAttrib(stencilReader)
run()
The animation function is being called normally but the frameSize of the stencil isn’t changing. How can I animate the frameSize and what am I doing wrong?