aboutsummaryrefslogtreecommitdiffstats
path: root/src/graphui/classes/com/jogamp/graph/ui/shapes/TexSeqButton.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2023-04-20 22:00:11 +0200
committerSven Gothel <[email protected]>2023-04-20 22:00:11 +0200
commit2aae33b94cea15b2fc0c54479277611c67cdaf13 (patch)
treee1956d8361fd1ef6860c50f0a0aa8aab6b5ce612 /src/graphui/classes/com/jogamp/graph/ui/shapes/TexSeqButton.java
parentc21082a5d7caf0ae6e29144358b4b4a1eafec019 (diff)
GraphUI GraphShape: createGLRegion() -> updateGLRegion(), called by addShapeToRegion() impl to utilize OutlineShape -> GLRegion ctor w/ proper buffer-size
This way we avoid unnecessary buffer growth and allow creation of 'always' fitting buffer sizes. +++ Update or freshly create the GLRegion, while allocating its buffers with given initial `vertexCount` and `indexCount`. Method shall be invoked by the addShapeToRegion(GLProfile, GL2ES2) implementation before actually adding the OutlineShape to the GLRegion. addShapeToRegion(GLProfile, GL2ES2) is capable to determine initial `vertexCount` and `indexCount` buffer sizes, as it composes the OutlineShapes to be added. updateGLRegion(GLProfile, GL2ES2, TextureSequence, OutlineShape) maybe used for convenience. In case GLRegion is `null`, a new instance is being created. In case the GLRegion already exists, it will be either cleared if the GL2ES2 `gl` instance is not `null` or earmarked for deletion at a later time and a new instance is being created.
Diffstat (limited to 'src/graphui/classes/com/jogamp/graph/ui/shapes/TexSeqButton.java')
-rw-r--r--src/graphui/classes/com/jogamp/graph/ui/shapes/TexSeqButton.java15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/graphui/classes/com/jogamp/graph/ui/shapes/TexSeqButton.java b/src/graphui/classes/com/jogamp/graph/ui/shapes/TexSeqButton.java
index 4768b4974..86cff4dae 100644
--- a/src/graphui/classes/com/jogamp/graph/ui/shapes/TexSeqButton.java
+++ b/src/graphui/classes/com/jogamp/graph/ui/shapes/TexSeqButton.java
@@ -27,10 +27,10 @@
*/
package com.jogamp.graph.ui.shapes;
+import com.jogamp.opengl.GL2ES2;
import com.jogamp.opengl.GLProfile;
import com.jogamp.graph.curve.OutlineShape;
import com.jogamp.graph.curve.Region;
-import com.jogamp.graph.curve.opengl.GLRegion;
import com.jogamp.graph.ui.GraphShape;
import com.jogamp.opengl.util.texture.TextureSequence;
@@ -53,15 +53,14 @@ public abstract class TexSeqButton extends BaseButton {
this.texSeq = texSeq;
}
- @Override
- protected GLRegion createGLRegion(final GLProfile glp) {
- return GLRegion.create(glp, getRenderModes(), texSeq);
- }
-
public final TextureSequence getTextureSequence() { return this.texSeq; }
@Override
- protected void addShapeToRegion() {
- addBaseShapeToRegion( 0f );
+ protected void addShapeToRegion(final GLProfile glp, final GL2ES2 gl) {
+ final OutlineShape shape = createBaseShape(0f);
+ updateGLRegion(glp, gl, texSeq, shape);
+ region.addOutlineShape(shape, null, rgbaColor);
+ box.resize(shape.getBounds());
+ setRotationPivot( box.getCenter() );
}
}