Skip to content

Commit 9f65464

Browse files
authored
AbstractShadowFilter: use TempVars instead of temp variables
1 parent 76a446f commit 9f65464

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

jme3-core/src/main/java/com/jme3/shadow/AbstractShadowFilter.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import com.jme3.renderer.ViewPort;
4242
import com.jme3.renderer.queue.RenderQueue;
4343
import com.jme3.texture.FrameBuffer;
44+
import com.jme3.util.TempVars;
4445
import com.jme3.util.clone.Cloner;
4546
import 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

Comments
 (0)