aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/com/jogamp
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2012-10-12 14:56:20 +0200
committerSven Gothel <[email protected]>2012-10-12 14:56:20 +0200
commitf49f8e22953ed2426fd4264ee407e2dc3fc07cfc (patch)
treea1a646e638b02c6c0c7a3778d3bb2f8728c7f8e9 /src/jogl/classes/com/jogamp
parent8582ece7dc7f65271b3184261697a542766d9864 (diff)
GLArrayData* VBO binding: Adding explicit bindBuffer(..) method, since VBO is not more bound after enableBuffer(); Fix unit test (test VBO bound).
Explicit bindBuffer(..) is required now, since enableBuffer() doesn't leave it bound. See fixed VBORegion* patch for use case, i.e. using a VBO index buffer for glDrawElements(). Complets commit 8582ece7dc7f65271b3184261697a542766d9864.
Diffstat (limited to 'src/jogl/classes/com/jogamp')
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java8
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/GLArrayDataEditable.java21
2 files changed, 25 insertions, 4 deletions
diff --git a/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java b/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java
index 5a1524d05..30fc0012b 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataClient.java
@@ -171,7 +171,13 @@ public class GLArrayDataClient extends GLArrayDataWrapper implements GLArrayData
bufferEnabled = enable;
}
}
-
+
+ public void bindBuffer(GL gl, boolean bind) {
+ if(isVBO()) {
+ gl.glBindBuffer(getVBOTarget(), bind ? getVBOName() : 0);
+ }
+ }
+
public void setEnableAlways(boolean always) {
enableBufferAlways = always;
}
diff --git a/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataEditable.java b/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataEditable.java
index bb22a4b7e..588e90d1e 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataEditable.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/GLArrayDataEditable.java
@@ -45,9 +45,15 @@ public interface GLArrayDataEditable extends GLArrayData {
public void seal(GL gl, boolean seal);
/**
- * <p>Enables/disables the buffer,
- * sets the client state, binds the VBO if used
- * and transfers the data if necessary.</p>
+ * <p>
+ * Enables the buffer if <code>enable</code> is <code>true</code>,
+ * and transfers the data if required.
+ * In case {@link #isVBO() VBO is used}, it is bound accordingly for the data transfer and data association.
+ * The VBO buffer is unbound when the method returns.
+ * </p>
+ * <p>
+ * Disables the buffer if <code>enable</code> is <code>false</code>.
+ * </p>
*
* <p>The action will only be executed,
* if the internal enable state differs,
@@ -61,6 +67,15 @@ public interface GLArrayDataEditable extends GLArrayData {
* @see #setEnableAlways(boolean)
*/
public void enableBuffer(GL gl, boolean enable);
+
+ /**
+ * In case {@link #isVBO() VBO is used}, the buffer is bound
+ * if <code>bind</code> is <code>true</code>, otherwise the buffer is unbound.
+ *
+ * @param gl
+ * @param bind
+ */
+ public void bindBuffer(GL gl, boolean bind);
/**
* Affects the behavior of 'enableBuffer'.