4141import com .jme3 .renderer .ViewPort ;
4242import com .jme3 .renderer .queue .RenderQueue ;
4343import com .jme3 .texture .FrameBuffer ;
44+ import com .jme3 .util .TempVars ;
4445import com .jme3 .util .clone .Cloner ;
4546import com .jme3 .util .clone .JmeCloneable ;
4647
@@ -55,9 +56,6 @@ public abstract class AbstractShadowFilter<T extends AbstractShadowRenderer> ext
5556 protected T shadowRenderer ;
5657 protected ViewPort viewPort ;
5758
58- private final Vector4f tempVec4 = new Vector4f ();
59- private final Matrix4f tempMat4 = new Matrix4f ();
60-
6159 /**
6260 * For serialization only. Do not use.
6361 */
@@ -101,8 +99,13 @@ public Material getShadowMaterial() {
10199 protected void preFrame (float tpf ) {
102100 shadowRenderer .preFrame (tpf );
103101 Matrix4f m = viewPort .getCamera ().getViewProjectionMatrix ();
104- material .setMatrix4 ("ViewProjectionMatrixInverse" , tempMat4 .set (m ).invertLocal ());
105- material .setVector4 ("ViewProjectionMatrixRow2" , tempVec4 .set (m .m20 , m .m21 , m .m22 , m .m23 ));
102+ TempVars vars = TempVars .get ();
103+ try {
104+ material .setMatrix4 ("ViewProjectionMatrixInverse" , vars .tempMat4 .set (m ).invertLocal ());
105+ material .setVector4 ("ViewProjectionMatrixRow2" , vars .vect4f1 .set (m .m20 , m .m21 , m .m22 , m .m23 ));
106+ } finally {
107+ vars .release ();
108+ }
106109 }
107110
108111 @ Override
0 commit comments