From a959c53b7ac91e489bf0959391e892790b9ff248 Mon Sep 17 00:00:00 2001
From: Kenneth Russel <kbrussel@alum.mit.edu>
Date: Mon, 15 Jun 2009 22:57:38 +0000
Subject: Copied JOGL_2_SANDBOX r1957 on to trunk; JOGL_2_SANDBOX branch is now
 closed

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1959 232f8b59-042b-4e1e-8c03-345bb8c30851
---
 .../classes/javax/media/opengl/GLArrayData.java    | 114 +++++++++++++++++++++
 1 file changed, 114 insertions(+)
 create mode 100644 src/jogl/classes/javax/media/opengl/GLArrayData.java

(limited to 'src/jogl/classes/javax/media/opengl/GLArrayData.java')

diff --git a/src/jogl/classes/javax/media/opengl/GLArrayData.java b/src/jogl/classes/javax/media/opengl/GLArrayData.java
new file mode 100644
index 000000000..d17ee6a06
--- /dev/null
+++ b/src/jogl/classes/javax/media/opengl/GLArrayData.java
@@ -0,0 +1,114 @@
+
+package javax.media.opengl;
+
+import java.nio.*;
+
+/**
+ *
+ * The total number of bytes hold by the referenced buffer is:
+ * getComponentSize()* getComponentNumber() * getElementNumber()
+ *
+ */
+public interface GLArrayData {
+
+    /**
+     * Returns true if this data set is intended for a GLSL vertex shader attribute,
+     * otherwise false, ie intended for fixed function vertex pointer
+     */
+    public boolean isVertexAttribute();
+
+    /**
+     * The index of the predefined array index, see list below,
+     * or -1 in case of a shader attribute array.
+     *
+     * @see javax.media.opengl.GL#GL_VERTEX_ARRAY
+     * @see javax.media.opengl.GL#GL_NORMAL_ARRAY
+     * @see javax.media.opengl.GL#GL_COLOR_ARRAY
+     * @see javax.media.opengl.GL#GL_TEXTURE_COORD_ARRAY
+     */
+    public int getIndex();
+
+    /**
+     * The name of the reflecting shader array attribute.
+     */
+    public String getName();
+
+    /**
+     * Set a new name for this array.
+     */
+    public void setName(String newName);
+
+
+    /**
+     * Returns the shader attribute location for this name,
+     * -1 if not yet determined
+     */
+    public int getLocation();
+
+    /**
+     * Sets the determined location of the shader attribute
+     * This is usually done within ShaderState.
+     *
+     * @see javax.media.opengl.glsl.ShaderState#glVertexAttribPointer(GL2ES2, GLArrayData)
+     */
+    public void setLocation(int v);
+
+    /**
+     * Determines wheather the data is server side (VBO),
+     * or a client side array (false).
+     */
+    public boolean isVBO();
+
+    /**
+     * The offset, if it's an VBO, otherwise -1
+     */
+    public long getOffset();
+
+    /**
+     * The VBO name, if it's an VBO, otherwise -1
+     */
+    public int getVBOName();
+
+    /**
+     * The Buffer holding the data, may be null in case of VBO
+     */
+    public Buffer getBuffer();
+
+    /**
+     * The number of components per element
+     */
+    public int getComponentNumber();
+
+    /**
+     * The component's GL data type, ie. GL_FLOAT
+     */
+    public int getComponentType();
+
+    /**
+     * The components size in bytes
+     */
+    public int getComponentSize();
+
+    /**
+     * Return the number of elements.
+     */
+    public int getElementNumber();
+
+    /**
+     * True, if GL shall normalize fixed point data while converting 
+     * them into float
+     */
+    public boolean getNormalized();
+
+    /**
+     * The distance to the next payload,
+     * allowing interleaved arrays.
+     */
+    public int getStride();
+
+    public String toString();
+
+    public void destroy(GL gl);
+
+}
+
-- 
cgit v1.2.3