aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2023-03-06 02:15:23 +0100
committerSven Gothel <[email protected]>2023-03-06 02:15:23 +0100
commitc14b85395d2b3b75d09d9b9fd2eeecb20aad46af (patch)
treea313ae2dbd7965b466805f52357fa34fcd49755b /src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java
parentd87f510194ad2eead2a42b41a3cbe1077f65a695 (diff)
GLArrayData[Editable,Client]: Add put[34][bsif](..) and array put[bsif](..) variants for flexibility/performance
Notable: The array-put is slower than small range single-puts, e.g. put3i(..). Uses GlueGen's Buffers change commit 69b748925038b7d44fa6318536642b426e3d3e38
Diffstat (limited to 'src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java')
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java b/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java
index 6dbfb2673..71b15e4e9 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java
@@ -293,6 +293,27 @@ public class GLArrayDataClient extends GLArrayDataWrapper implements GLArrayData
}
@Override
+ public void put3b(final byte v1, final byte v2, final byte v3) {
+ if ( sealed ) return;
+ growIfNeeded(3);
+ Buffers.put3b(buffer, v1, v2, v3);
+ }
+
+ @Override
+ public void put4b(final byte v1, final byte v2, final byte v3, final byte v4) {
+ if ( sealed ) return;
+ growIfNeeded(4);
+ Buffers.put4b(buffer, v1, v2, v3, v4);
+ }
+
+ @Override
+ public void putb(final byte[] src, final int offset, final int length) {
+ if ( sealed ) return;
+ growIfNeeded(length);
+ Buffers.putb(buffer, src, offset, length);
+ }
+
+ @Override
public void puts(final short v) {
if ( sealed ) return;
growIfNeeded(1);
@@ -300,6 +321,27 @@ public class GLArrayDataClient extends GLArrayDataWrapper implements GLArrayData
}
@Override
+ public void put3s(final short v1, final short v2, final short v3) {
+ if ( sealed ) return;
+ growIfNeeded(3);
+ Buffers.put3s(buffer, v1, v2, v3);
+ }
+
+ @Override
+ public void put4s(final short v1, final short v2, final short v3, final short v4) {
+ if ( sealed ) return;
+ growIfNeeded(4);
+ Buffers.put4s(buffer, v1, v2, v3, v4);
+ }
+
+ @Override
+ public void puts(final short[] src, final int offset, final int length) {
+ if ( sealed ) return;
+ growIfNeeded(length);
+ Buffers.puts(buffer, src, offset, length);
+ }
+
+ @Override
public void puti(final int v) {
if ( sealed ) return;
growIfNeeded(1);
@@ -307,6 +349,27 @@ public class GLArrayDataClient extends GLArrayDataWrapper implements GLArrayData
}
@Override
+ public void put3i(final int v1, final int v2, final int v3) {
+ if ( sealed ) return;
+ growIfNeeded(3);
+ Buffers.put3i(buffer, v1, v2, v3);
+ }
+
+ @Override
+ public void put4i(final int v1, final int v2, final int v3, final int v4) {
+ if ( sealed ) return;
+ growIfNeeded(4);
+ Buffers.put4i(buffer, v1, v2, v3, v4);
+ }
+
+ @Override
+ public void puti(final int[] src, final int offset, final int length) {
+ if ( sealed ) return;
+ growIfNeeded(length);
+ Buffers.puti(buffer, src, offset, length);
+ }
+
+ @Override
public void putx(final int v) {
puti(v);
}
@@ -319,6 +382,27 @@ public class GLArrayDataClient extends GLArrayDataWrapper implements GLArrayData
}
@Override
+ public void put3f(final float v1, final float v2, final float v3) {
+ if ( sealed ) return;
+ growIfNeeded(3);
+ Buffers.put3f(buffer, v1, v2, v3);
+ }
+
+ @Override
+ public void put4f(final float v1, final float v2, final float v3, final float v4) {
+ if ( sealed ) return;
+ growIfNeeded(4);
+ Buffers.put4f(buffer, v1, v2, v3, v4);
+ }
+
+ @Override
+ public void putf(final float[] src, final int offset, final int length) {
+ if ( sealed ) return;
+ growIfNeeded(length);
+ Buffers.putf(buffer, src, offset, length);
+ }
+
+ @Override
public String toString() {
return "GLArrayDataClient["+name+
", index "+index+