From d1cfa99135154e8e651e86ebc48a0f635fad38aa Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Sat, 16 Sep 2023 14:00:45 +0200 Subject: GraphUI Group: Override isShapeDirty(), performing a deep dirty state update on all group member to allow validate to function --- src/graphui/classes/com/jogamp/graph/ui/Group.java | 13 +++++++++++++ src/graphui/classes/com/jogamp/graph/ui/Shape.java | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/graphui/classes/com/jogamp/graph/ui/Group.java b/src/graphui/classes/com/jogamp/graph/ui/Group.java index b131e8863..95a829b3e 100644 --- a/src/graphui/classes/com/jogamp/graph/ui/Group.java +++ b/src/graphui/classes/com/jogamp/graph/ui/Group.java @@ -237,6 +237,19 @@ public class Group extends Shape implements Container { } } + @Override + protected boolean isShapeDirty() { + // Deep dirty state update: + // - Ensure all group member's dirty state is updated + // - Allowing all group member's validate to function + for(final Shape s : shapes) { + if( s.isShapeDirty() ) { + markShapeDirty(); + } + } + return super.isShapeDirty(); + } + @Override protected void validateImpl(final GLProfile glp, final GL2ES2 gl) { if( isShapeDirty() ) { diff --git a/src/graphui/classes/com/jogamp/graph/ui/Shape.java b/src/graphui/classes/com/jogamp/graph/ui/Shape.java index 9b45cd36d..843c73384 100644 --- a/src/graphui/classes/com/jogamp/graph/ui/Shape.java +++ b/src/graphui/classes/com/jogamp/graph/ui/Shape.java @@ -407,7 +407,7 @@ public abstract class Shape { } } - protected final boolean isShapeDirty() { + protected boolean isShapeDirty() { return 0 != ( dirty & DIRTY_SHAPE ) ; } protected final boolean isStateDirty() { -- cgit v1.2.3