From c65c750e032118f229050ff8e834961264ed0591 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Tue, 18 Apr 2023 05:15:16 +0200 Subject: Graph + GraphUI: Consolidate Vertex: Drop SVertex and factory, use Vec[234]f instead of float[] and remove unused VectorUtil methods After Matrix4f consolidation and proving same or better performance on non array types, this enhances code readability, simplifies API, reduces bugs and may improve performance. GraphUI: - Have RoundButton as a functional class to make a round or rectangular backdrop, i.e. impl. addShapeToRegion() via reused addRoundShapeToRegion() --- .../graph/curve/opengl/VBORegion2PMSAAES2.java | 28 ++++++++++++---------- .../graph/curve/opengl/VBORegion2PVBAAES2.java | 28 ++++++++++++---------- .../jogamp/graph/curve/opengl/VBORegionSPES2.java | 28 ++++++++++++---------- 3 files changed, 45 insertions(+), 39 deletions(-) (limited to 'src/jogl/classes/jogamp/graph/curve/opengl') diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java b/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java index d970b7029..c6c7f567c 100644 --- a/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java +++ b/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java @@ -48,6 +48,8 @@ import com.jogamp.opengl.FBObject; import com.jogamp.opengl.FBObject.Attachment; import com.jogamp.opengl.math.Matrix4f; import com.jogamp.opengl.math.Recti; +import com.jogamp.opengl.math.Vec3f; +import com.jogamp.opengl.math.Vec4f; import com.jogamp.opengl.math.geom.AABBox; import com.jogamp.opengl.util.GLArrayDataServer; import com.jogamp.opengl.util.SyncMatrices4f16; @@ -221,12 +223,12 @@ public final class VBORegion2PMSAAES2 extends GLRegion { } @Override - protected final void pushVertex(final float[] coords, final float[] texParams, final float[] rgba) { - put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords[0], coords[1], coords[2]); - put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams[0], texParams[1], texParams[2]); + protected final void pushVertex(final Vec3f coords, final Vec3f texParams, final Vec4f rgba) { + put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords); + put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams); if( null != gca_ColorsAttr ) { if( null != rgba ) { - put4f((FloatBuffer)gca_ColorsAttr.getBuffer(), rgba[0], rgba[1], rgba[2], rgba[3]); + put4f((FloatBuffer)gca_ColorsAttr.getBuffer(), rgba); } else { throw new IllegalArgumentException("Null color given for COLOR_CHANNEL rendering mode"); } @@ -234,17 +236,17 @@ public final class VBORegion2PMSAAES2 extends GLRegion { } @Override - protected final void pushVertices(final float[] coords1, final float[] coords2, final float[] coords3, - final float[] texParams1, final float[] texParams2, final float[] texParams3, final float[] rgba) { - put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords1[0], coords1[1], coords1[2]); - put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords2[0], coords2[1], coords2[2]); - put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords3[0], coords3[1], coords3[2]); - put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams1[0], texParams1[1], texParams1[2]); - put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams2[0], texParams2[1], texParams2[2]); - put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams3[0], texParams3[1], texParams3[2]); + protected final void pushVertices(final Vec3f coords1, final Vec3f coords2, final Vec3f coords3, + final Vec3f texParams1, final Vec3f texParams2, final Vec3f texParams3, final Vec4f rgba) { + put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords1); + put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords2); + put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords3); + put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams1); + put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams2); + put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams3); if( null != gca_ColorsAttr ) { if( null != rgba ) { - final float r=rgba[0], g=rgba[1], b=rgba[2], a=rgba[3]; + final float r=rgba.x(), g=rgba.y(), b=rgba.z(), a=rgba.w(); put4f((FloatBuffer)gca_ColorsAttr.getBuffer(), r, g, b, a); put4f((FloatBuffer)gca_ColorsAttr.getBuffer(), r, g, b, a); put4f((FloatBuffer)gca_ColorsAttr.getBuffer(), r, g, b, a); diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java b/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java index 889f4448d..1b580437f 100644 --- a/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java +++ b/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java @@ -51,6 +51,8 @@ import com.jogamp.opengl.FBObject.Attachment; import com.jogamp.opengl.FBObject.TextureAttachment; import com.jogamp.opengl.math.Matrix4f; import com.jogamp.opengl.math.Recti; +import com.jogamp.opengl.math.Vec3f; +import com.jogamp.opengl.math.Vec4f; import com.jogamp.opengl.math.geom.AABBox; import com.jogamp.opengl.util.GLArrayDataServer; import com.jogamp.opengl.util.SyncMatrices4f16; @@ -322,19 +324,19 @@ public final class VBORegion2PVBAAES2 extends GLRegion { } @Override - protected final void pushVertex(final float[] coords, final float[] texParams, final float[] rgba) { + protected final void pushVertex(final Vec3f coords, final Vec3f texParams, final Vec4f rgba) { // NIO array[3] is much slows than group/single // gca_VerticesAttr.putf(coords, 0, 3); // gca_CurveParamsAttr.putf(texParams, 0, 3); // gca_VerticesAttr.put3f(coords[0], coords[1], coords[2]); - put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords[0], coords[1], coords[2]); + put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords); // gca_CurveParamsAttr.put3f(texParams[0], texParams[1], texParams[2]); - put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams[0], texParams[1], texParams[2]); + put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams); if( null != gca_ColorsAttr ) { if( null != rgba ) { // gca_ColorsAttr.putf(rgba, 0, 4); // gca_ColorsAttr.put4f(rgba[0], rgba[1], rgba[2], rgba[3]); - put4f((FloatBuffer)gca_ColorsAttr.getBuffer(), rgba[0], rgba[1], rgba[2], rgba[3]); + put4f((FloatBuffer)gca_ColorsAttr.getBuffer(), rgba); } else { throw new IllegalArgumentException("Null color given for COLOR_CHANNEL rendering mode"); } @@ -342,23 +344,23 @@ public final class VBORegion2PVBAAES2 extends GLRegion { } @Override - protected final void pushVertices(final float[] coords1, final float[] coords2, final float[] coords3, - final float[] texParams1, final float[] texParams2, final float[] texParams3, final float[] rgba) { + protected final void pushVertices(final Vec3f coords1, final Vec3f coords2, final Vec3f coords3, + final Vec3f texParams1, final Vec3f texParams2, final Vec3f texParams3, final Vec4f rgba) { // gca_VerticesAttr.put3f(coords1[0], coords1[1], coords1[2]); // gca_VerticesAttr.put3f(coords2[0], coords2[1], coords2[2]); // gca_VerticesAttr.put3f(coords3[0], coords3[1], coords3[2]); - put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords1[0], coords1[1], coords1[2]); - put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords2[0], coords2[1], coords2[2]); - put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords3[0], coords3[1], coords3[2]); + put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords1); + put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords2); + put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords3); // gca_CurveParamsAttr.put3f(texParams1[0], texParams1[1], texParams1[2]); // gca_CurveParamsAttr.put3f(texParams2[0], texParams2[1], texParams2[2]); // gca_CurveParamsAttr.put3f(texParams3[0], texParams3[1], texParams3[2]); - put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams1[0], texParams1[1], texParams1[2]); - put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams2[0], texParams2[1], texParams2[2]); - put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams3[0], texParams3[1], texParams3[2]); + put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams1); + put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams2); + put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams3); if( null != gca_ColorsAttr ) { if( null != rgba ) { - final float r=rgba[0], g=rgba[1], b=rgba[2], a=rgba[3]; + final float r=rgba.x(), g=rgba.y(), b=rgba.z(), a=rgba.w(); // gca_ColorsAttr.put4f(r, g, b, a); // gca_ColorsAttr.put4f(r, g, b, a); // gca_ColorsAttr.put4f(r, g, b, a); diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java b/src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java index 9e29821fa..e149203f9 100644 --- a/src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java +++ b/src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java @@ -36,6 +36,8 @@ import com.jogamp.opengl.GL; import com.jogamp.opengl.GL2ES2; import com.jogamp.opengl.GLProfile; import com.jogamp.opengl.GLUniformData; +import com.jogamp.opengl.math.Vec3f; +import com.jogamp.opengl.math.Vec4f; import jogamp.graph.curve.opengl.shader.AttributeNames; import jogamp.graph.curve.opengl.shader.UniformNames; @@ -172,12 +174,12 @@ public final class VBORegionSPES2 extends GLRegion { } @Override - protected final void pushVertex(final float[] coords, final float[] texParams, final float[] rgba) { - put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords[0], coords[1], coords[2]); - put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams[0], texParams[1], texParams[2]); + protected final void pushVertex(final Vec3f coords, final Vec3f texParams, final Vec4f rgba) { + put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords); + put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams); if( null != gca_ColorsAttr ) { if( null != rgba ) { - put4f((FloatBuffer)gca_ColorsAttr.getBuffer(), rgba[0], rgba[1], rgba[2], rgba[3]); + put4f((FloatBuffer)gca_ColorsAttr.getBuffer(), rgba); } else { throw new IllegalArgumentException("Null color given for COLOR_CHANNEL rendering mode"); } @@ -185,17 +187,17 @@ public final class VBORegionSPES2 extends GLRegion { } @Override - protected final void pushVertices(final float[] coords1, final float[] coords2, final float[] coords3, - final float[] texParams1, final float[] texParams2, final float[] texParams3, final float[] rgba) { - put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords1[0], coords1[1], coords1[2]); - put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords2[0], coords2[1], coords2[2]); - put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords3[0], coords3[1], coords3[2]); - put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams1[0], texParams1[1], texParams1[2]); - put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams2[0], texParams2[1], texParams2[2]); - put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams3[0], texParams3[1], texParams3[2]); + protected final void pushVertices(final Vec3f coords1, final Vec3f coords2, final Vec3f coords3, + final Vec3f texParams1, final Vec3f texParams2, final Vec3f texParams3, final Vec4f rgba) { + put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords1); + put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords2); + put3f((FloatBuffer)gca_VerticesAttr.getBuffer(), coords3); + put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams1); + put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams2); + put3f((FloatBuffer)gca_CurveParamsAttr.getBuffer(), texParams3); if( null != gca_ColorsAttr ) { if( null != rgba ) { - final float r=rgba[0], g=rgba[1], b=rgba[2], a=rgba[3]; + final float r=rgba.x(), g=rgba.y(), b=rgba.z(), a=rgba.w(); put4f((FloatBuffer)gca_ColorsAttr.getBuffer(), r, g, b, a); put4f((FloatBuffer)gca_ColorsAttr.getBuffer(), r, g, b, a); put4f((FloatBuffer)gca_ColorsAttr.getBuffer(), r, g, b, a); -- cgit v1.2.3