From a883f3e2e1563736df32573141fd5119f0678c92 Mon Sep 17 00:00:00 2001 From: Sven Göthel Date: Mon, 22 Jan 2024 05:53:34 +0100 Subject: Bug 1490 - GraphUI Group: Resolve Performance Issues with Shape Mv Transform -> PMVMatrix4f Shape.setTransformMv() is called for each renderer frame and for each shape, involving 6 Matrix4f.mul() and set*() operations. Since mutation of shape's position, rotation or scale is less frequent than rendering one frame (for all shapes), it is more efficient to maintain a local Matrix4f and update it on such single mutations. Rendering then only needs to perform one Matrix4f.mul() operation using this internal matrix. +++ Also changes name from setTransformMv(PMVMatrix4f) to applyMatToMv(PMVMatrix4f), as its name might be misleading. --- src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java') diff --git a/src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java b/src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java index bed4b33eb..bd939f37e 100644 --- a/src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java +++ b/src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java @@ -182,7 +182,7 @@ public class BoxLayout implements Group.Layout { // measure size pmv.pushMv(); - s.setTransformMv(pmv); + s.applyMatToMv(pmv); s.getBounds().transform(pmv.getMv(), sbox); pmv.popMv(); -- cgit v1.2.3