/*
* Copyright 1990-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version
* 2 only, as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License version 2 for more details (a copy is
* included at /legal/license.txt).
*
* You should have received a copy of the GNU General Public License
* version 2 along with this work; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
* Clara, CA 95054 or visit www.sun.com if you need additional
* information or have any questions.
*/
package javax.microedition.khronos.opengles;
import java.nio.*;
/**
* The <code>GL11</code> interface contains the Java(TM) programming
* language bindings for OpenGL(R) ES 1.1 core functionality.
*
* <p> The <code>OES_matrix_get</code>, <code>OES_point_sprite</code> and
* <code>OES_point_size_array</code> core extensions are defined as
* part of this interface.
*
* <p> Methods that are also present in OpenGL ES 1.0 are included in
* this interface by inheritance, but are not separately documented.
* Instead, the documentation from the <code>GL10</code> interface
* specifies the functional differences between 1.0 and 1.1.
*
* <p> See the <code>GL</code> interface for a description of how to
* obtain an instance of this interface.
*/
public interface GL11 extends GL10 {
// Begin GL 1.1
// ClipPlaneName
/** OpenGL ES 1.1 constant. */
int GL_CLIP_PLANE0 = 0x3000;
/** OpenGL ES 1.1 constant. */
int GL_CLIP_PLANE1 = 0x3001;
/** OpenGL ES 1.1 constant. */
int GL_CLIP_PLANE2 = 0x3002;
/** OpenGL ES 1.1 constant. */
/** OpenGL ES 1.1 constant. */
int GL_CLIP_PLANE3 = 0x3003;
/** OpenGL ES 1.1 constant. */
int GL_CLIP_PLANE4 = 0x3004;
/** OpenGL ES 1.1 constant. */
int GL_CLIP_PLANE5 = 0x3005;
// GetPName
/** OpenGL ES 1.1 constant. */
int GL_CURRENT_COLOR = 0x0B00;
/** OpenGL ES 1.1 constant. */
int GL_CURRENT_NORMAL = 0x0B02;
/** OpenGL ES 1.1 constant. */
int GL_CURRENT_TEXTURE_COORDS = 0x0B03;
/** OpenGL ES 1.1 constant. */
int GL_POINT_SIZE = 0x0B11;
/** OpenGL ES 1.1 constant. */
int GL_POINT_SIZE_MIN = 0x8126;
/** OpenGL ES 1.1 constant. */
int GL_POINT_SIZE_MAX = 0x8127;
/** OpenGL ES 1.1 constant. */
int GL_POINT_FADE_THRESHOLD_SIZE = 0x8128;
/** OpenGL ES 1.1 constant. */
int GL_POINT_DISTANCE_ATTENUATION = 0x8129;
/** OpenGL ES 1.1 constant. */
int GL_LINE_WIDTH = 0x0B21;
/** OpenGL ES 1.1 constant. */
int GL_CULL_FACE_MODE = 0x0B45;
/** OpenGL ES 1.1 constant. */
int GL_FRONT_FACE = 0x0B46;
/** OpenGL ES 1.1 constant. */
int GL_SHADE_MODEL = 0x0B54;
/** OpenGL ES 1.1 constant. */
int GL_DEPTH_RANGE = 0x0B70;
/** OpenGL ES 1.1 constant. */
int GL_DEPTH_WRITEMASK = 0x0B72;
/** OpenGL ES 1.1 constant. */
int GL_DEPTH_CLEAR_VALUE = 0x0B73;
/** OpenGL ES 1.1 constant. */
int GL_DEPTH_FUNC = 0x0B74;
/** OpenGL ES 1.1 constant. */
int GL_STENCIL_CLEAR_VALUE = 0x0B91;
/** OpenGL ES 1.1 constant. */
int GL_STENCIL_FUNC = 0x0B92;
/** OpenGL ES 1.1 constant. */
int GL_STENCIL_VALUE_MASK = 0x0B93;
/** OpenGL ES 1.1 constant. */
int GL_STENCIL_FAIL = 0x0B94;
/** OpenGL ES 1.1 constant. */
int GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95;
/** OpenGL ES 1.1 constant. */
int GL_STENCIL_PASS_DEPTH_PASS = 0x0B96;
/** OpenGL ES 1.1 constant. */
int GL_STENCIL_REF = 0x0B97;
/** OpenGL ES 1.1 constant. */
int GL_STENCIL_WRITEMASK = 0x0B98;
/** OpenGL ES 1.1 constant. */
int GL_MATRIX_MODE = 0x0BA0;
/** OpenGL ES 1.1 constant. */
int GL_VIEWPORT = 0x0BA2;
/** OpenGL ES 1.1 constant. */
int GL_MODELVIEW_STACK_DEPTH = 0x0BA3;
/** OpenGL ES 1.1 constant. */
int GL_PROJECTION_STACK_DEPTH = 0x0BA4;
/** OpenGL ES 1.1 constant. */
int GL_TEXTURE_STACK_DEPTH = 0x0BA5;
/** OpenGL ES 1.1 constant. */
int GL_MODELVIEW_MATRIX = 0x0BA6;
/** OpenGL ES 1.1 constant. */
int GL_PROJECTION_MATRIX = 0x0BA7;
/** OpenGL ES 1.1 constant. */
int GL_TEXTURE_MATRIX = 0x0BA8;
/** OpenGL ES 1.1 constant. */
int GL_ALPHA_TEST_FUNC = 0x0BC1;
/** OpenGL ES 1.1 constant. */
int GL_ALPHA_TEST_REF = 0x0BC2;
/** OpenGL ES 1.1 constant. */
int GL_BLEND_DST = 0x0BE0;
/** OpenGL ES 1.1 constant. */
int GL_BLEND_SRC = 0x0BE1;
/** OpenGL ES 1.1 constant. */
int GL_LOGIC_OP_MODE = 0x0BF0;
/** OpenGL ES 1.1 constant. */
int GL_SCISSOR_BOX = 0x0C10;
/** OpenGL ES 1.1 constant. */
int GL_COLOR_CLEAR_VALUE = 0x0C22;
/** OpenGL ES 1.1 constant. */
int GL_COLOR_WRITEMASK = 0x0C23;
/** OpenGL ES 1.1 constant. */
int GL_MAX_CLIP_PLANES = 0x0D32;
/** OpenGL ES 1.1 constant. */
int GL_POLYGON_OFFSET_UNITS = 0x2A00;
/** OpenGL ES 1.1 constant. */
int GL_POLYGON_OFFSET_FACTOR = 0x8038;
/** OpenGL ES 1.1 constant. */
int GL_TEXTURE_BINDING_2D = 0x8069;
/** OpenGL ES 1.1 constant. */
int GL_VERTEX_ARRAY_SIZE = 0x807A;
/** OpenGL ES 1.1 constant. */
int GL_VERTEX_ARRAY_TYPE = 0x807B;
/** OpenGL ES 1.1 constant. */
int GL_VERTEX_ARRAY_STRIDE = 0x807C;
/** OpenGL ES 1.1 constant. */
int GL_NORMAL_ARRAY_TYPE = 0x807E;
/** OpenGL ES 1.1 constant. */
int GL_NORMAL_ARRAY_STRIDE = 0x807F;
/** OpenGL ES 1.1 constant. */
int GL_COLOR_ARRAY_SIZE = 0x8081;
/** OpenGL ES 1.1 constant. */
int GL_COLOR_ARRAY_TYPE = 0x8082;
/** OpenGL ES 1.1 constant. */
int GL_COLOR_ARRAY_STRIDE = 0x8083;
/** OpenGL ES 1.1 constant. */
int GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088;
/** OpenGL ES 1.1 constant. */
int GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089;
/** OpenGL ES 1.1 constant. */
int GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A;
/** OpenGL ES 1.1 constant. */
int GL_VERTEX_ARRAY_POINTER = 0x808E;
/** OpenGL ES 1.1 constant. */
int GL_NORMAL_ARRAY_POINTER = 0x808F;
/** OpenGL ES 1.1 constant. */
int GL_COLOR_ARRAY_POINTER = 0x8090;
/** OpenGL ES 1.1 constant. */
int GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092;
/** OpenGL ES 1.1 constant. */
int GL_SAMPLE_BUFFERS = 0x80A8;
/** OpenGL ES 1.1 constant. */
int GL_SAMPLES = 0x80A9;
/** OpenGL ES 1.1 constant. */
int GL_SAMPLE_COVERAGE_VALUE = 0x80AA;
/** OpenGL ES 1.1 constant. */
int GL_SAMPLE_COVERAGE_INVERT = 0x80AB;
// HintTarget
/** OpenGL ES 1.1 constant. */
int GL_GENERATE_MIPMAP_HINT = 0x8192;
// TextureParameterName
/** OpenGL ES 1.1 constant. */
int GL_GENERATE_MIPMAP = 0x8191;
// TextureUnit
/** OpenGL ES 1.1 constant. */
int GL_ACTIVE_TEXTURE = 0x84E0;
/** OpenGL ES 1.1 constant. */
int GL_CLIENT_ACTIVE_TEXTURE = 0x84E1;
// Buffer Objects
/** OpenGL ES 1.1 constant. */
int GL_ARRAY_BUFFER = 0x8892;
/** OpenGL ES 1.1 constant. */
int GL_ELEMENT_ARRAY_BUFFER = 0x8893;
/** OpenGL ES 1.1 constant. */
int GL_ARRAY_BUFFER_BINDING = 0x8894;
/** OpenGL ES 1.1 constant. */
int GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
/** OpenGL ES 1.1 constant. */
int GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896;
/** OpenGL ES 1.1 constant. */
int GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897;
/** OpenGL ES 1.1 constant. */
int GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898;
/** OpenGL ES 1.1 constant. */
int GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A;
/** OpenGL ES 1.1 constant. */
int GL_STATIC_DRAW = 0x88E4;
/** OpenGL ES 1.1 constant. */
int GL_DYNAMIC_DRAW = 0x88E8;
/** OpenGL ES 1.1 constant. */
int GL_WRITE_ONLY = 0x88B9;
/** OpenGL ES 1.1 constant. */
int GL_BUFFER_SIZE = 0x8764;
/** OpenGL ES 1.1 constant. */
int GL_BUFFER_USAGE = 0x8765;
/** OpenGL ES 1.1 constant. */
int GL_BUFFER_ACCESS = 0x88BB;
// Texture combine + dot3
/** OpenGL ES 1.1 constant. */
int GL_SUBTRACT = 0x84E7;
/** OpenGL ES 1.1 constant. */
int GL_COMBINE = 0x8570;
/** OpenGL ES 1.1 constant. */
int GL_COMBINE_RGB = 0x8571;
/** OpenGL ES 1.1 constant. */
int GL_COMBINE_ALPHA = 0x8572;
/** OpenGL ES 1.1 constant. */
int GL_RGB_SCALE = 0x8573;
/** OpenGL ES 1.1 constant. */
int GL_ADD_SIGNED = 0x8574;
/** OpenGL ES 1.1 constant. */
int GL_INTERPOLATE = 0x8575;
/** OpenGL ES 1.1 constant. */
int GL_CONSTANT = 0x8576;
/** OpenGL ES 1.1 constant. */
int GL_PRIMARY_COLOR = 0x8577;
/** OpenGL ES 1.1 constant. */
int GL_PREVIOUS = 0x8578;
/** OpenGL ES 1.1 constant. */
int GL_OPERAND0_RGB = 0x8590;
/** OpenGL ES 1.1 constant. */
int GL_OPERAND1_RGB = 0x8591;
/** OpenGL ES 1.1 constant. */
int GL_OPERAND2_RGB = 0x8592;
/** OpenGL ES 1.1 constant. */
int GL_OPERAND0_ALPHA = 0x8598;
/** OpenGL ES 1.1 constant. */
int GL_OPERAND1_ALPHA = 0x8599;
/** OpenGL ES 1.1 constant. */
int GL_OPERAND2_ALPHA = 0x859A;
/** OpenGL ES 1.1 constant. */
int GL_ALPHA_SCALE = 0x0D1C;
/** OpenGL ES 1.1 constant. */
int GL_SRC0_RGB = 0x8580;
/** OpenGL ES 1.1 constant. */
int GL_SRC1_RGB = 0x8581;
/** OpenGL ES 1.1 constant. */
int GL_SRC2_RGB = 0x8582;
/** OpenGL ES 1.1 constant. */
int GL_SRC0_ALPHA = 0x8588;
/** OpenGL ES 1.1 constant. */
int GL_SRC1_ALPHA = 0x8589;
/** OpenGL ES 1.1 constant. */
int GL_SRC2_ALPHA = 0x858A;
/** OpenGL ES 1.1 constant. */
int GL_DOT3_RGB = 0x86AE;
/** OpenGL ES 1.1 constant. */
int GL_DOT3_RGBA = 0x86AF;
// Functions
// Buffers
/**
* Generate buffer object names.
*
* <p><code>glGenBuffers</code> returns <code>n</code> buffer object
* names in <code>buffers</code>.
*
* <p>These names are marked as used, for the purposes of
* <code>glGenBuffers</code> only, but they acquire buffer state
* only when they are first bound, just as if they were unused.
*
* <h4>Errors</h4>
*
* <p>GL_INVALID_VALUE is generated if <code>n</code> is negative.
*
* @param n Specifies the number of buffer object names to be generated.
* @param buffers Specifies an array in which the generated buffer
* object names are stored.
* @param offset the starting offset within the
* <code>buffers</code> array.
*
* @exception IllegalArgumentException if <code>buffers</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if
* <code>buffers.length - offset</code> is less than <code>n</code>.
*/
void glGenBuffers(int n, int[] buffers, int offset);
/**
* Integer <code>Buffer</code> version of
* <code>glGenBuffers</code>.
*
* @see #glGenBuffers(int n, int[] buffers, int offset)
*
* @exception IllegalArgumentException if <code>buffers</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>buffers.remaining()</code> is less than <code>n</code>.
*/
void glGenBuffers(int n, IntBuffer buffers);
/**
* Bind a named buffer to a target.
*
* <p><code>glBindBuffer</code> lets you create or use a named
* buffer. Calling <code>glBindBuffer</code> with
* <code>target</code> set to <code>GL_ARRAY_BUFFER</code> or
* <code>GL_ELEMENT_ARRAY_BUFFER</code> and <code>buffer</code> set
* to the buffer name, binds the buffer name to the target.
*
* <p>Buffer names are unsigned integers. The value 0 is reserved
* for GL.
*
* <p>When a buffer is bound to a target, any previous binding for
* that target is automatically broken.
*
* <p>If an unused buffer name is specified, a buffer object is
* created. The resulting buffer object is a new state vector,
* initialized with a zero-sized memory buffer, and with the
* following state values.
*
* <p><code>GL_BUFFER_SIZE</code> initialized to 0.
* <p><code>GL_BUFFER_USAGE</code> initialized to
* <code>GL_STATIC_DRAW</code>.
* <p><code>GL_BUFFER_ACCESS</code>
* initialized to <code>GL_WRITE_ONLY</code>.
* <p><code>glBindBuffer</code> may also be used to bind an existing
* buffer object. If the bind is successful no change is made to the
* state of the newly bound buffer object.
*
* <p>While a buffer is bound, GL operations on the target to which
* it is bound affect the bound buffer object, and queries of the
* target to which a buffer object is bound return state from the
* bound object.
*
* <h4>Notes</h4>
*
* <p>In the initial state the reserved name zero is bound to
* <code>GL_ARRAY_BUFFER</code> and
* <code>GL_ELEMENT_ARRAY_BUFFER</code>. There is no buffer object
* corresponding to the name zero, so client attempts to modify or
* query buffer object state for the target
* <code>GL_ARRAY_BUFFER</code> or
* <code>GL_ELEMENT_ARRAY_BUFFER</code> while zero is bound will
* generate GL errors.
*
* <p>While a buffer object is bound, any GL operations on that
* object affect any other bindings of that object.
*
* <h4>Errors</h4>
*
* <p><code>GL_INVALID_ENUM</code> is generated if
* <code>target</code> is not one of the allowable values.
*
* @param target Specifies the target to which the buffer is
* bound. Which must be <code>GL_ARRAY_BUFFER</code> or
* <code>GL_ELEMENT_ARRAY_BUFFER</code>.
* @param buffer Specifies the name of a buffer.
*/
void glBindBuffer(int target, int buffer);
/**
* Creates and initializes the data store of a buffer object.
*
* <code>glBufferData</code> lets you create and initialize the data
* store of a buffer object.
*
* <p>If <code>data</code> is non-<code>null</code>, then the source
* data is copied to the buffer object�s data store. If
* <code>data</code> is <code>null</code>, then the contents of the
* buffer object�s data store are undefined.
*
* <p>The options for <code>usage</code> are:
*
* <ul>
*
* <li><code>GL_STATIC_DRAW</code></li>
*
* <p> Where the data store contents will be specified once by the
* application, and used many times as the source for GL drawing
* commands.
*
* <li><code>GL_DYNAMIC_DRAW</code></li>
*
* <p> Where the data store contents will be respecified repeatedly
* by the application, and used many times as the source for GL
* drawing commands.
*
* </ul>
*
* <p><code>glBufferData</code> deletes any existing data store, and
* sets the values of the buffer object�s state variables thus:
*
* <p><code>GL_BUFFER_SIZE</code> initialized to <code>size</code>.
* <p><code>GL_BUFFER_USAGE</code> initialized to <code>usage</code>.
* <p><code>GL_BUFFER_ACCESS</code> initialized to
* <code>GL_WRITE_ONLY</code>.
*
* <p>Clients must align data elements consistent with the
* requirements of the client platform, with an additional
* base-level requirement that an offset within a buffer to a datum
* comprising N basic machine units be a multiple of N.
*
* <h4>Notes</h4>
*
* <p><code>usage</code> is provided as a performance hint only. The
* specified usage value does not constrain the actual usage pattern
* of the data store.
*
* <h4>Errors</h4>
*
* <p><code>GL_INVALID_ENUM</code> is generated if
* <code>target</code> is not one of the allowable values.
*
* <p><code>GL_INVALID_ENUM</code> is generated if
* <code>usage</code> is not one of the allowable values.
*
* <p><code>GL_OUT_OF_MEMORY</code> is generated if the GL is unable
* to create a data store of the requested size.
*
* @param target Specifies the buffer object target, which must be
* <code>GL_ARRAY_BUFFER</code> or
* <code>GL_ELEMENT_ARRAY_BUFFER</code>.
* @param size Specifies the size of the data store in basic machine
* units.
* @param data Specifies the source data in client memory.
* @param usage Specifies the expected application usage pattern of
* the data store. Accepted values are <code>GL_STATIC_DRAW</code>
* and <code>GL_DYNAMIC_DRAW</code>.
*
* @exception IllegalArgumentException if <code>data</code> is
* <code>non-null</code> but is not a direct buffer.
*
* <!-- Need revisit - buffer type mixing - byte order issues -->
*/
void glBufferData(int target, int size, Buffer data, int usage);
/**
* Modifies some or all of the data contained in a buffer object's
* data store.
*
* <p><code>glBufferSubData</code> lets you modify some or all of
* the data contained in a buffer object's data store.
*
* <h4>Errors</h4>
*
* <p>GL_INVALID_ENUM is generated if <code>target</code> is not one of the
* allowable values.
*
* <p>GL_INVALID_VALUE is generated if <code>offset</code> or
* <code>size</code> is less than zero, or if <code>offset +
* size</code> is greater than the value of
* <code>GL_BUFFER_SIZE</code>.
*
* @param target Specifies the buffer object <code>target</code>. Must be
* <code>GL_ARRAY_BUFFER</code> or
* <code>GL_ELEMENT_ARRAY_BUFFER</code>.
* @param offset Specifies the starting offset of the data to be
* replaced in bytes.
* @param size Specifies the size of the data to be replaced in bytes.
* @param data Specifies a region of client memory <code>size</code>
* bytes in length, containing the data that replace the specified
* buffer range.
*
* @exception IllegalArgumentException if <code>data</code> is
* <code>null</code>.
*
* <!-- Need revisit - buffer type mixing - byte order issues -->
*/
void glBufferSubData(int target, int offset, int size, Buffer data);
/**
* Delete named buffer objects.
*
* <p><code>glDeleteBuffers</code> deletes <code>n</code> buffer
* objects named by the elements of the array buffers. After a
* buffer object is deleted, it has no contents, and its name is
* free for reuse.
*
* <p><code>glDeleteBuffers</code> silently ignores zero and names
* that do not correspond to existing buffer objects.
*
* <h4>Notes</h4>
*
* <p>If a buffer object is deleted while it is bound, all bindings
* to that object in the current context (i.e., in the thread that
* called <code>glDeleteBuffers</code>) are reset to zero. Bindings
* to that buffer in other contexts and other threads are not
* affected, but attempting to use a deleted buffer in another
* thread produces undefined results, including but not limited to
* possible GL errors and rendering corruption. Using a deleted
* buffer in another context or thread may not, however, result in
* program termination.
*
* <h4>Errors</h4>
*
* <p><code>GL_INVALID_VALUE</code> is generated if <code>n</code>
* is negative.
*
* @param n Specifies the number of buffer objects to be deleted.
* @param buffers Specifies an array of buffer object names to be
* deleted.
* @param offset the starting offset within the
* <code>buffers</code> array.
*
* @exception IllegalArgumentException if <code>buffers</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if
* <code>buffers.length - offset</code> is less than <code>n</code>.
*/
void glDeleteBuffers(int n, int[] buffers, int offset);
/**
* Integer <code>Buffer</code> version of
* <code>glDeleteBuffers</code>.
*
* @see #glDeleteBuffers(int n, int[] buffers, int offset)
*
* @exception IllegalArgumentException if <code>buffers</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>buffers.remaining()</code> is less than <code>n</code>.
*/
void glDeleteBuffers(int n, IntBuffer buffers);
// Clip Planes
/**
* Specify a plane against which all geometry is clipped.
*
* <p>Geometry is always clipped against the boundaries of a
* six-plane frustum in x, y, and z. <code>glClipPlane</code> allows
* the specification of additional planes, not necessarily
* perpendicular to the x, y, or z axis, against which all geometry
* is clipped. To determine the maximum number of additional
* clipping planes, call <code>glGet</code> with argument
* <code>GL_MAX_CLIP_PLANES</code>. All implementations support at
* least one such clipping planes. Because the resulting clipping
* region is the intersection of the defined half-spaces, it is
* always convex.
*
* <p><code>glClipPlane</code> specifies a half-space using a
* four-component plane equation. When <code>glClipPlane</code> is
* called, equation is transformed by the inverse of the modelview
* matrix and stored in the resulting eye coordinates. Subsequent
* changes to the modelview matrix have no effect on the stored
* plane-equation components. If the dot product of the eye
* coordinates of a vertex with the stored plane equation components
* is positive or zero, the vertex is in with respect to that
* clipping plane. Otherwise, it is out.
*
* <p>To enable and disable clipping planes, call
* <code>glEnable</code> and glDisable with the argument
* <code>GL_CLIP_PLANE</code><i>i</i>, where <i>i</i> is the plane number.
*
* <p>All clipping planes are initially defined as (0, 0, 0, 0) in
* eye coordinates and are disabled.
*
* <h4>Notes</h4>
*
* <p>It is always the case that <code>GL_CLIP_PLANE</code><i>i</i> =
* <code>GL_CLIP_PLANE0</code> + <i>i</i>.
*
* <h4>Errors</h4>
*
* <p><code>GL_INVALID_ENUM</code> is generated if
* <code>plane</code> is not an accepted value.
*
* <h4>Associated Gets</h4>
*
* <p><code>glGetClipPlane</code>, <code>glIsEnabled</code> with
* argument <code>GL_CLIP_PLANE</code><i>i</i>.
*
* @param plane Specifies which clipping plane is being
* positioned. Symbolic names of the form
* <code>GL_CLIP_PLANE</code><i>i</i> where <code>0 < <i>i</i> <
* GL_MAX_CLIP_PLANES</code> are accepted.
* @param equation Specifies an array of four values. These values
* are interpreted as a plane equation.
* @param offset the starting offset within the
* <code>equation</code> array.
*
* @exception IllegalArgumentException if <code>equation</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if
* <code>equation.length - offset</code> is less than 4.
*/
void glClipPlanef(int plane, float[] equation, int offset);
/**
* Floating-point <code>Buffer</code> version of
* <code>glClipPlane</code>.
*
* @see #glClipPlanef(int plane, float[] equation, int offset)
*
* @exception IllegalArgumentException if <code>equation</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>equation.remaining()</code> is less than 4.
*/
void glClipPlanef(int plane, FloatBuffer equation);
/**
* Fixed-point array version of <code>glClipPlane</code>.
*
* @see #glClipPlanef(int plane, float[] equation, int offset)
*
* @exception IllegalArgumentException if <code>equation</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if
* <code>equation.length - offset</code> is less than 4.
*/
void glClipPlanex(int plane, int[] equation, int offset);
/**
* Fixed-point <code>Buffer</code> version of
* <code>glClipPlane</code>.
*
* @see #glClipPlanef(int plane, float[] equation, int offset)
*
* @exception IllegalArgumentException if <code>equation</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>equation.remaining()</code> is less than 4.
*/
void glClipPlanex(int plane, IntBuffer equation);
// Getters
/**
* Floating-point array version of <code>glGet</code>.
*
* @see #glGetIntegerv(int pname, int[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glGetFloatv(int pname, float[] params, int offset);
/**
* Floating-point <code>Buffer</code> version of
* <code>glGet</code>.
*
* @see #glGetIntegerv(int pname, int[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glGetFloatv(int pname, FloatBuffer params);
/**
* Boolean array version of <code>glGet</code>.
*
* @see #glGetIntegerv(int pname, int[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glGetBooleanv(int pname, boolean[] params, int offset);
/**
* Boolean <code>Buffer</code> version of
* <code>glGet</code>. A value of 0 represents <code>false</code>
* and a value of 1 represents <code>true</code>.
*
* @see #glGetIntegerv(int pname, int[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glGetBooleanv(int pname, IntBuffer params);
/**
* Fixed-point array version of <code>glGet</code>.
*
* @see #glGetIntegerv(int pname, int[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glGetFixedv(int pname, int[] params, int offset);
/**
* Fixed-point <code>Buffer</code> version of
* <code>glGet</code>.
*
* @see #glGetIntegerv(int pname, int[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glGetFixedv(int pname, IntBuffer params);
/**
* Return buffer parameter values.
*
* <p><code>glGetBufferParameter</code> returns in
* <code>params</code> the value or values of the buffer object
* parameter specified as <code>pname</code>. <code>target</code>
* defines the target buffer object, which must be
* <code>GL_ARRAY_BUFFER</code>.
*
* <ul>
*
* <li><code>GL_BUFFER_SIZE</code></li>
*
* <p> Returns the size of the data store in bytes.
*
* <li><code>GL_BUFFER_USAGE</code></li>
*
* <p> Returns the expected application usage pattern of the data
* store. Possible values are:
*
* <li><code>GL_STATIC_DRAW</code></li>
*
* <p> Where the data store contents will be specified once by the
* application, and used many times as the source for GL drawing
* commands.
*
* <li><code>GL_DYNAMIC_DRAW</code></li>
*
* <p> Where the data store contents will be respecified repeatedly
* by the application, and used many times as the source for GL
* drawing commands.
*
* <li><code>GL_BUFFER_ACCESS</code></li>
*
* <p> Returns the access capability for the data store. Will always
* be <code>GL_WRITE_ONLY</code>.
*
* </ul>
*
* <h4>Errors</h4>
*
* <p><code>GL_INVALID_ENUM</code> is generated if
* <code>target</code> or <code>pname</code> is not one of the
* accepted defined values.
*
* @param target Specifies the buffer object target. Which must be
* <code>GL_ARRAY_BUFFER</code>.
* @param pname Specifies the symbolic name of a buffer object
* parameter. Which can be either <code>GL_BUFFER_SIZE</code>,
* <code>GL_BUFFER_USAGE</code>, or <code>GL_BUFFER_ACCESS</code>.
* @param params returns the buffer object parameters.
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glGetBufferParameteriv(int target, int pname, int[] params, int offset);
/**
* Integer <code>Buffer</code> version of
* <code>glGetBufferParameter</code>.
*
* @see #glGetBufferParameteriv(int target, int pname, int[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glGetBufferParameteriv(int target, int pname, IntBuffer params);
/**
* Return the coefficients of the specified clipping
* plane.
*
* <p><code>glGetClipPlane</code> returns in <code>equation</code>
* the four coefficients of the plane equation for
* <code>plane</code>.
*
* <h4>Notes</h4>
*
* <p>It is always the case that <code>GL_CLIP_PLANE</code><i>i</i> =
* <code>GL_CLIP_PLANE0</code> + <i>i</i>.
*
* <p>If an error is generated, no change is made to the contents of
* equation. <h4>Errors</h4>
*
* <p><code>GL_INVALID_ENUM</code> is generated if
* <code>plane</code> is not an accepted value.
*
* @param plane Specifies a clipping plane. The number of clipping
* planes depends on the implementation, but at least six clipping
* planes are supported. They are identified by symbolic names of
* the form <code>GL_CLIP_PLANE</code><i>i</i> where <code>0 <
* <i>i</i> < GL_MAX_CLIP_PLANES</code>
* @param equation Returns four values that are the coefficients of
* the plane equation of plane in eye coordinates. The initial value
* is (0, 0, 0, 0).
* @param offset the starting offset within the
* <code>equation</code> array.
*
* @exception IllegalArgumentException if <code>equation</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if
* <code>equation.length - offset</code> is less than 4.
*/
void glGetClipPlanef(int plane, float[] equation, int offset);
/**
* Floating-point <code>Buffer</code> version of
* <code>glGetClipPlane</code>.
*
* @see #glGetClipPlanef(int plane, float[] equation, int offset)
*
* @exception IllegalArgumentException if <code>equation</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>equation.remaining()</code> is less than 4.
*/
void glGetClipPlanef(int plane, FloatBuffer equation);
/**
* Fixed-point array version of
* <code>glGetClipPlane</code>.
*
* @see #glGetClipPlanef(int plane, float[] equation, int offset)
*
* @exception IllegalArgumentException if <code>equation</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>equation.length -
* offset</code> is less than 4.
*/
void glGetClipPlanex(int plane, int[] equation, int offset);
/**
* Fixed-point <code>Buffer</code> version of
* <code>glGetClipPlane</code>.
*
* @see #glGetClipPlanef(int plane, float[] equation, int offset)
*
* @exception IllegalArgumentException if <code>equation</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>equation.remaining()</code> is less than 4.
*/
void glGetClipPlanex(int plane, IntBuffer equation);
/**
* Return light source parameter values.
*
* <p><code>glGetLight</code> returns in params the value or values
* of a light source parameter. light names the light and is a
* symbolic name of the form <code>GL_LIGHT</code><i>i</i> for <code>0 < i
* < GL_MAX_LIGHTS</code> where <code>GL_MAX_LIGHTS</code> is an
* implementation dependent constant that is greater than or equal
* to eight. <code>pname</code> specifies one of ten light source parameters,
* again by symbolic name.
*
* The ten light parameters are defined:
*
* <ul>
*
* <li><code>GL_AMBIENT</code></li>
*
* <p> <code>params</code> returns four values that
* specify the ambient RGBA intensity of the light. Both fixed-point
* and floating-point values are mapped directly. Neither
* fixed-point nor floating-point values are clamped. The initial
* ambient light intensity is (0, 0, 0, 1).
*
* <li><code>GL_DIFFUSE</code></li>
*
* <p> <code>params</code> returns four values that
* specify the diffuse RGBA intensity of the light. Both fixed-point
* and floating-point values are mapped directly. Neither
* fixed-point nor floating-point values are clamped. The initial
* value for <code>GL_LIGHT0</code> is (1, 1, 1, 1). For other
* lights, the initial value is (0, 0, 0, 0).
*
* <li><code>GL_SPECULAR</code></li>
*
* <p> <code>params</code> returns four values that
* specify the specular RGBA intensity of the light. Both
* fixed-point and floating-point values are mapped
* directly. Neither fixed-point nor floating-point values are
* clamped. The initial value for <code>GL_LIGHT0</code> is (1, 1,
* 1, 1). For other lights, the initial value is (0, 0, 0, 0).
*
* <li><code>GL_EMISSION</code></li>
*
* <p> <code>params</code> returns four values
* representing the emitted light intensity of the material. Both
* fixed-point and floating-point values are mapped directly. The
* initial value is (0, 0, 0, 1).
*
* <li><code>GL_SPOT_DIRECTION</code></li>
*
* <p> <code>params</code> returns three values
* that specify the direction of the light in homogeneous object
* coordinates. Both fixed-point and floating-point values are
* mapped directly. Neither fixed-point nor floating-point values
* are clamped. The initial direction is (0, 0, -1).
*
* <li><code>GL_SPOT_EXPONENT</code></li>
*
* <p> <code>params</code> returns a single value that specifies the
* intensity distribution of the light. Fixed-point and
* floating-point values are mapped directly. Only values in the
* range <code>[0, 128]</code> are accepted. The initial spot
* exponent is 0.
*
* <li><code>GL_SPOT_CUTOFF</code></li>
*
* <p> <code>params</code> returns a single value that specifies the
* maximum spread angle of a light source. Fixed-point and
* floating-point values are mapped directly. Only values in the
* range <code>[0, 90]</code> and the special value 180 are
* accepted. If the angle between the direction of the light and the
* direction from the light to the vertex being lighted is greater
* than the spot cutoff angle, the light is completely
* masked. Otherwise, its intensity is controlled by the spot
* exponent and the attenuation factors. The initial spot cutoff is
* 180.
*
* <li><code>GL_CONSTANT_ATTENUATION</code>,
* <code>GL_LINEAR_ATTENUATION</code>,
* <code>GL_QUADRATIC_ATTENUATION</code></li>
*
* <p> <code>params</code> returns a single value
* that specifies one of the three light attenuation
* factors. Fixed-point and floating-point values are mapped
* directly. Only nonnegative values are accepted. If the light is
* positional, rather than directional, its intensity is attenuated
* by the reciprocal of the sum of the constant factor, the linear
* factor times the distance between the light and the vertex being
* lighted, and the quadratic factor times the square of the same
* distance. The initial attenuation factors are (1, 0, 0).
*
* </ul>
*
* <h4>Notes</h4>
*
* <p>It is always the case that <code>GL_LIGHT</code><i>i</i> =
* <code>GL_LIGHT0</code> + <i>i</i>.
*
* <p>If an error is generated, no change is made to the contents of
* params.
*
* <h4>Errors</h4>
*
* <p><code>GL_INVALID_ENUM</code> is generated if light or
* <code>pname</code> is not an accepted value.
*
* @param light Specifies a light source. The number of possible
* lights depends on the implementation, but at least eight lights
* are supported. They are identified by symbolic names of the form
* <code>GL_LIGHT</code><i>i</i> where <code>0 < <i>i</i> <
* GL_MAX_LIGHTS</code>.
* @param pname Specifies a light source parameter for
* light. Accepted symbolic names are <code>GL_AMBIENT</code>,
* <code>GL_DIFFUSE</code>, <code>GL_SPECULAR</code>,
* <code>GL_EMISSION</code>, <code>GL_SPOT_DIRECTION</code>,
* <code>GL_SPOT_EXPONENT</code>, <code>GL_SPOT_CUTOFF</code>,
* <code>GL_CONSTANT_ATTENUATION</code>,
* <code>GL_LINEAR_ATTENUATION</code>, and
* <code>GL_QUADRATIC_ATTENUATION</code>.
* @param params returns the requested data.
* @param offset the starting offset within the
* <code>params</code> array.
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glGetLightfv(int light, int pname, float[] params, int offset);
/**
* Floating-point <code>Buffer</code> version of
* <code>glGetLight</code>.
*
* @see #glGetLightfv(int light, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glGetLightfv(int light, int pname, FloatBuffer params);
/**
* Fixed-point array version of <code>glGetLight</code>.
*
* @see #glGetLightfv(int light, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glGetLightxv(int light, int pname, int[] params, int offset);
/**
* Fixed-point <code>Buffer</code> version of
* <code>glGetLight</code>.
*
* @see #glGetLightfv(int light, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glGetLightxv(int light, int pname, IntBuffer params);
/**
* Return material parameters values.
*
* <p><code>glGetMaterial</code> returns in <code>params</code> the
* value or values of parameter <code>pname</code> of material
* <code>face</code>.
*
* <p>Five parameters are defined:
*
* <ul>
*
* <li><code>GL_AMBIENT</code></li>
*
* <p> <code>params</code> returns four values that specify the ambient RGBA
* reflectance of the material. The values are not clamped. The
* initial ambient reflectance is (0.2, 0.2, 0.2, 1.0).
*
* <li><code>GL_DIFFUSE</code></li>
*
* <p> <code>params</code> returns four values that specify the diffuse RGBA
* reflectance of the material. The values are not clamped. The
* initial diffuse reflectance is (0.8, 0.8, 0.8, 1.0).
*
* <li><code>GL_SPECULAR</code></li>
*
* <p> <code>params</code> returns four values that specify the specular RGBA
* reflectance of the material. The values are not clamped. The
* initial specular reflectance is (0, 0, 0, 1).
*
* <li><code>GL_EMISSION</code></li>
*
* <p> <code>params</code> returns four values that specify the RGBA emitted
* light intensity of the material. The values are not clamped. The
* initial emission intensity is (0, 0, 0, 1).
*
* <li><code>GL_SHININESS</code></li>
*
* <p> <code>params</code> returns a single value that specifies the RGBA
* specular exponent of the material. The initial specular exponent
* is 0.
*
* </ul>
*
* <h4>Notes</h4>
*
* <p>If an error is generated, no change is made to the contents of
* <code>params</code>.
*
* <h4>Errors</h4>
*
* <code>GL_INVALID_ENUM</code> is generated if <code>face</code> or
* <code>pname</code> is not an accepted value.
*
* @param face Specifies which of the two materials is being
* queried. <code>GL_FRONT</code> or <code>GL_BACK</code> are
* accepted, representing the front and back materials,
* respectively.
* @param pname Specifies the material parameter to return. Accepted
* symbolic names are <code>GL_AMBIENT</code>,
* <code>GL_DIFFUSE</code>, <code>GL_SPECULAR</code>,
* <code>GL_EMISSION</code>, and <code>GL_SHININESS</code>.
* @param params returns the requested data.
* @param offset the starting offset within the
* <code>params</code> array.
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glGetMaterialfv(int face, int pname, float[] params, int offset);
/**
* Floating-point <code>Buffer</code> version of
* <code>glGetMaterial</code>.
*
* @see #glGetMaterialfv(int face, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glGetMaterialfv(int face, int pname, FloatBuffer params);
/**
* Fixed-point array version of
* <code>glGetMaterial</code>.
*
* @see #glGetMaterialfv(int face, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glGetMaterialxv(int face, int pname, int[] params, int offset);
/**
* Fixed-point <code>Buffer</code> version of
* <code>glGetMaterial</code>.
*
* @see #glGetMaterialfv(int face, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glGetMaterialxv(int face, int pname, IntBuffer params);
/**
* Return the <code>Buffer</code> associated with the specified pointer.
*
* <p> <code>glGetPointer</code> returns pointer information in the
* form of a <code>Buffer</code> reference. <code>pname</code> is a
* symbolic constant indicating the pointer to be returned, and
* <code>params</code> is an array of <code>Buffer</code>s in which
* the returned data will be placed in element 0.
*
* <h4>Notes</h4>
*
* <p>The pointers are all client-side state.
*
* <p>The initial value for each pointer is <code>null</code>.
* <h4>Errors</h4>
*
* <p> <code>GL_INVALID_ENUM</code> is generated if
* <code>pname</code> is not an accepted value.
*
* @param pname Specifies the array or buffer pointer to be
* returned. Accepted symbolic names are
* <code>GL11.GL_COLOR_ARRAY_POINTER</code>,
* <code>GL11.GL_NORMAL_ARRAY_POINTER</code>,
* <code>GL11.GL_TEXTURE_COORD_ARRAY_POINTER</code>,
* <code>GL11.GL_VERTEX_ARRAY_POINTER</code>,
* <code>GL11.GL_POINT_SIZE_ARRAY_POINTER_OES</code>,
* <code>GL11Ext.GL_MATRIX_INDEX_ARRAY_POINTER_OES</code>, and
* <code>GL11Ext.GL_WEIGHT_ARRAY_POINTER_OES</code>.
* @param params a non-<code>null</code> array of <code>Buffer</code>s
* containing at least one element.
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code> or has length less than 1.
*/
void glGetPointerv(int pname, Buffer[] params);
/**
* Return texture environment parameters.
*
* <p><code>glGetTexParameter</code> returns in <code>params</code>
* selected values of a texture environment that was specified with
* <code>glTexEnv</code>. <code>target</code> specifies a texture
* environment. Currently, only one texture environment is defined
* and supported: <code>GL_TEXTURE_ENV</code>.
*
* <p><code>pname</code> names a specific texture environment parameter, as
* follows:
*
* <li><code>GL_TEXTURE_ENV_MODE</code></li>
*
* <p> <code>params</code> returns the single-valued texture
* environment mode, a symbolic constant. The initial value is
* <code>GL_MODULATE</code>.
*
* <li><code>GL_TEXTURE_ENV_COLOR</code></li>
*
* <p> <code>params</code> returns four fixed or floating-point
* values that are the texture environment color. The initial value
* is (0, 0, 0, 0).
*
* <h4>Notes</h4>
*
* <p>If an error is generated, no change is made to the contents of
* <code>params</code>.
*
* <h4>Errors</h4>
*
* <p><code>GL_INVALID_ENUM</code> is generated if
* <code>target</code> or <code>pname</code> is not one of the
* accepted defined values.
*
* @param env Specifies a texture environment, which must be
* <code>GL_TEXTURE_ENV</code>.
* @param pname Specifies the symbolic name of a texture environment
* parameter. <code>pname</code> can be one of the following:
* <code>GL_TEXTURE_ENV_MODE</code>,
* <code>GL_TEXTURE_ENV_COLOR</code>,
* <code>GL_TEXTURE_WRAP_S</code>, <code>GL_TEXTURE_WRAP_T</code>,
* or <code>GL_GENERATE_MIPMAP</code>.
* @param params returns the requested data.
* @param offset the starting offset within the
* <code>params</code> array.
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glGetTexEnvfv(int env, int pname, float[] params, int offset);
/**
* Floating-point <code>Buffer</code> version of
* <code>glGetTexEnv</code>.
*
* @see #glGetTexEnvfv(int env, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glGetTexEnvfv(int env, int pname, FloatBuffer params);
/**
* Integer array version of <code>glGetTexEnv</code>.
*
* @see #glGetTexEnvfv(int env, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glGetTexEnviv(int env, int pname, int[] params, int offset);
/**
* Integer <code>Buffer</code> version of
* <code>glGetTExEnv</code>.
*
* @see #glGetTexEnvfv(int env, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glGetTexEnviv(int env, int pname, IntBuffer params);
/**
* Fixed-point version of <code>glGetTexEnv</code>.
*
* @see #glGetTexEnvfv(int env, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glGetTexEnvxv(int env, int pname, int[] params, int offset);
/**
* Fixed-point <code>Buffer</code> version of
* <code>glGetTexEnv</code>.
*
* @see #glGetTexEnvfv(int env, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glGetTexEnvxv(int env, int pname, IntBuffer params);
/**
* Return texture parameter values.
*
* <p><code>glGetTexParameter</code> returns in <code>params</code>
* the value or values of the texture parameter specified as
* <code>pname</code>. <code>target</code> defines the target
* texture, which must be <code>GL_TEXTURE_2D</code> which specifies
* two-dimensional texturing. <code>pname</code> accepts the same
* symbols as <code>glTexParameter</code>, with the same
* interpretations:
*
* <ul>
*
* <li><code>GL_TEXTURE_MIN_FILTER</code></li>
*
* <p> Returns the texture minifying function. Which can one of the
* following: <code>GL_NEAREST</code>, <code>GL_LINEAR</code>,
* <code>GL_NEAREST_MIPMAP_NEAREST</code>,
* <code>GL_LINEAR_MIPMAP_NEAREST</code>,
* <code>GL_NEAREST_MIPMAP_LINEAR</code>, or
* <code>GL_LINEAR_MIPMAP_LINEAR</code>. The initial value is
* <code>GL_NEAREST_MIPMAP_LINEAR</code>.
*
* <li><code>GL_TEXTURE_MAG_FILTER</code></li>
*
* <p> Returns the texture magnification function. Which can be
* either <code>GL_NEAREST</code> or <code>GL_LINEAR</code>. The
* initial value is <code>GL_LINEAR</code>.
*
* <li><code>GL_TEXTURE_WRAP_S</code></li>
*
* <p> Returns the wrap parameter for texture coordinate s. Which
* can be either: <code>GL_CLAMP</code>,
* <code>GL_CLAMP_TO_EDGE</code>, or <code>GL_REPEAT</code>. The
* initial value is <code>GL_REPEAT</code>.
*
* <li><code>GL_TEXTURE_WRAP_T</code></li>
*
* <p> Returns the wrap parameter for texture coordinate t. Which
* can be either: <code>GL_CLAMP</code>,
* <code>GL_CLAMP_TO_EDGE</code>, or <code>GL_REPEAT</code>. The
* initial value is <code>GL_REPEAT</code>.
*
* <li><code>GL_GENERATE_MIPMAP</code></li>
*
* <p> Returns the automatic mipmap generation parameter. The
* initial value is <code>GL_FALSE</code>.
*
* </ul>
*
* <h4>Notes</h4>
*
* <p>If an error is generated, no change is made to the contents of params.
*
* <h4>Errors</h4>
*
* <p><code>GL_INVALID_ENUM</code> is generated if
* <code>target</code> or <code>pname</code> is not one of the
* accepted defined values.
*
* @param target Specifies the target texture, which must be
* <code>GL_TEXTURE_2D</code>.
* @param pname Specifies the symbolic name of a texture
* parameter. <code>pname</code> can be one of the following:
* <code>GL_TEXTURE_MIN_FILTER</code>,
* <code>GL_TEXTURE_MAG_FILTER</code>,
* <code>GL_TEXTURE_WRAP_S</code>, <code>GL_TEXTURE_WRAP_T</code>,
* or <code>GL_GENERATE_MIPMAP</code>.
* @param params returns the texture parameters.
* @param offset the starting offset within the
* <code>params</code> array.
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glGetTexParameterfv(int target, int pname, float[] params, int offset);
/**
* Floating-point <code>Buffer</code> version of
* <code>glGetTexParameter</code>.
*
* @see #glGetTexParameterfv(int target, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glGetTexParameterfv(int target, int pname, FloatBuffer params);
/**
* Integer array version of
* <code>glGetTexParameter</code>.
*
* @see #glGetTexParameterfv(int target, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glGetTexParameteriv(int target, int pname, int[] params, int offset);
/**
* Integer <code>Buffer</code> version of
* <code>glGetTexParameter</code>.
*
* @see #glGetTexParameterfv(int target, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glGetTexParameteriv(int target, int pname, IntBuffer params);
/**
* Fixed-point array version of
* <code>glGetTexParameter</code>.
*
* @see #glGetTexParameterfv(int target, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glGetTexParameterxv(int target, int pname, int[] params, int offset);
/**
* Fixed-point <code>Buffer</code> version of
* <code>glGetTexParameter</code>.
*
* @see #glGetTexParameterfv(int target, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glGetTexParameterxv(int target, int pname, IntBuffer params);
/**
* Determine if a name corresponds to a buffer object.
*
* <p><code>glIsBuffer</code> returns <code>true</code> if
* <code>buffer</code> is currently the name of a buffer object. If
* buffer is zero, or is a non-zero value that is not currently the
* name of a buffer object, <code>glIsBuffer</code> returns
* <code>false</code>.
*
* @param buffer Specifies a value that may be the name of a buffer object.
*
* @return <code>true</code> if <code>buffer</code> is the name of a
* buffer object.
*/
boolean glIsBuffer(int buffer);
/**
* Test whether a capability is enabled.
*
* <p><code>glIsEnabled</code> returns <code>true</code> if
* <code>cap</code> is an enabled capability and returns
* <code>false</code> otherwise.
*
* <p>The following capabilities are accepted for cap:
*
* <pre>
* Constant See function:
*
* GL_ALPHA_TEST glAlphaFunc
* GL_ARRAY_BUFFER_BINDING glBindBuffer
* GL_BLEND glBlendFunc, glLogicOp
* GL_CLIP_PLANE glClipPlane
* GL_COLOR_ARRAY glColorPointer
* GL_COLOR_LOGIC_OP glLogicOp
* GL_COLOR_MATERIAL glColorMaterial
* GL_CULL_FACE glCullFace
* GL_DEPTH_TEST glDepthFunc, glDepthRange
* GL_DITHER glEnable
* GL_FOG glFog
* GL_LIGHT glLight, glLightModel
* GL_LIGHTING glLight, glLightModel, glMaterial
* GL_LINE_SMOOTH glLineWidth
* GL_MATRIX_PALETTE_OES glMatrixMode
* GL_MATRIX_INDEX_ARRAY_OES glEnableClientState
* GL_MULTISAMPLE glEnable
* GL_NORMAL_ARRAY glNormalPointer
* GL_NORMALIZE glNormal
* GL_POINT_SIZE_ARRAY_OES glEnableClientState
* GL_POINT_SMOOTH glPointSize
* GL_POINT_SPRITE_OES glEnable, glTexEnv
* GL_POLYGON_OFFSET_FILL glPolygonOffset
* GL_RESCALE_NORMAL glEnable
* GL_SAMPLE_ALPHA_TO_COVERAGE glEnable
* GL_SAMPLE_ALPHA_TO_ONE glEnable
* GL_SAMPLE_COVERAGE glEnable
* GL_SCISSOR_TEST glScissor
* GL_STENCIL_TEST glStencilFunc, glStencilOp
* GL_TEXTURE_2D glTexImage2D
* GL_TEXTURE_COORD_ARRAY glTexCoordPointer
* GL_WEIGHT_ARRAY_OES glEnableClientState
* GL_VERTEX_ARRAY glVertexPointer
* </pre>
*
* <h4>Notes</h4>
*
* <p>If an error is generated, <code>glIsEnabled</code> returns 0.
*
* <h4>Errors</h4>
*
* <p><code>GL_INVALID_ENUM</code> is generated if <code>cap</code>
* is not an accepted value.
*
* @param cap Specifies a symbolic constant indicating a GL capability.
*
* @return <code>true</code> if the given capability is enabled.
*/
boolean glIsEnabled(int cap);
/**
* Determine if a name corresponds to a texture.
*
* <p><code>glIsTexture</code> returns <code>true</code> if
* <code>texture</code> is currently the name of a texture. If
* <code>texture</code> is zero, or is a non-zero value that is not
* currently the name of a texture, or if an error occurs,
* glIsTexture returns <code>false</code>.
*
* @param texture Specifies a value that may be the name of a texture.
*
* @return <code>true</code> if <code>texture</code> is the name of a
* texture object.
*/
boolean glIsTexture(int texture);
// Points
/**
* Specify parameters for point rasterization.
*
* <p><code>glPointParameter</code> assigns values to point parameters.
*
* <p><code>glPointParameter</code> takes two
* arguments. <code>pname</code> specifies which of several
* parameters will be modified. <code>param</code> specifies what
* value will be assigned to the specified parameter.
*
* <p>The parameters that can be specified using
* <code>glPointParameter</code>, and their interpretations are as
* follows:
*
* <ul>
*
* <li><code>GL_POINT_SIZE_MIN</code></li>
*
* <p> <code>param</code> specifies the lower bound to which the
* derived point size is clamped.
*
* <li><code>GL_POINT_SIZE_MAX</code></li>
*
* <p> <code>param</code> specifies the upper bound to which the
* derived point size is clamped.
*
* <li><code>GL_POINT_FADE_THRESHOLD_SIZE</code></li>
*
* <p> <code>param</code> specifies to the point fade threshold.
*
* </ul>
*
* <h4>Notes</h4>
*
* <p>If the point size lower bound is greater than the upper bound, then
* the point size after clamping is undefined.
*
* <h4>Errors</h4>
*
* <p><code>GL_INVALID_ENUM</code> is generated if
* <code>pname</code> is not an accepted value.
* <p><code>GL_INVALID_VALUE</code> is generated if assigned values
* for <p><code>GL_POINT_SIZE_MIN</code>,
* <code>GL_POINT_SIZE_MAX</code>, or
* <code>GL_POINT_FADE_THRESHOLD_SIZE</code> are less then zero.
*
* @param pname Specifies the single-valued parameter to be
* updated. Can be either <code>GL_POINT_SIZE_MIN</code>,
* <code>GL_POINT_SIZE_MAX</code>, or
* <code>GL_POINT_FADE_THRESHOLD_SIZE</code>.
* @param param Specifies the value that the parameter will be set
* to.
*/
void glPointParameterf(int pname, float param);
/**
* Fixed-point version of <code>glPointParameter</code>.
*
* @see #glPointParameterf(int pname, float param)
*/
void glPointParameterx(int pname, int param);
/**
* Specify parameters for point rasterization (array
* version).
*
* <p><code>glPointParameter</code> assigns values to point parameters.
*
* <p><code>glPointParameter</code> takes two
* arguments. <code>pname</code> specifies which of several
* parameters will be modified. <code>params</code> specifies what
* values will be assigned to the specified parameter.
*
* <p>The parameters that can be specified using
* <code>glPointParameter</code>, and their interpretations are as
* follows:
*
* <ul>
*
* <li><code>GL_POINT_SIZE_MIN</code></li>
*
* <p> <code>params</code> contains the lower bound to which the
* derived point size is clamped.
*
* <li><code>GL_POINT_SIZE_MAX</code></li>
*
* <p> <code>params</code> contains the upper bound to which the
* derived point size is clamped.
*
* <li><code>GL_POINT_FADE_THRESHOLD_SIZE</code></li>
*
* <p> <code>params</code> contains the point fade
* threshold.
*
* <li><code>GL_POINT_DISTANCE_ATTENUATION</code></li>
*
* <p> <code>params</code> contains the distance attenuation
* function coefficients a, b, and c.
*
* </ul>
*
* <h4>Notes</h4>
*
* <p>If the point size lower bound is greater than the upper bound,
* then the point size after clamping is undefined.
*
* <h4>Errors</h4>
*
* <p><code>GL_INVALID_ENUM</code> is generated if
* <code>pname</code> is not an accepted value.
* <p><code>GL_INVALID_VALUE</code> is generated if assigned values
* for <p><code>GL_POINT_SIZE_MIN</code>,
* <code>GL_POINT_SIZE_MAX</code>, or
* <code>GL_POINT_FADE_THRESHOLD_SIZE</code> are less then zero.
*
* @param pname Specifies the parameter to be updated. Can be either
* <code>GL_POINT_SIZE_MIN</code>, <code>GL_POINT_SIZE_MAX</code>,
* <code>GL_POINT_FADE_THRESHOLD_SIZE</code>, or
* <code>GL_POINT_DISTANCE_ATTENUATION</code>.
* @param params Specifies an array of values that
* <code>pname</code> will be set to.
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glPointParameterfv(int pname, float[] params, int offset);
/**
* Floating-point <code>Buffer</code> version of
* <code>glPointParameter</code>.
*
* @see #glPointParameterfv(int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glPointParameterfv(int pname, FloatBuffer params);
/**
* Fixed-point array version of
* <code>glPointParameter</code>.
*
* @see #glPointParameterfv(int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glPointParameterxv(int pname, int[] params, int offset);
/**
* Fixed-point <code>Buffer</code> version of
* <code>glPointParameterfv</code>.
*
* @see #glPointParameterfv(int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glPointParameterxv(int pname, IntBuffer params);
// Color
/**
* Byte version of <code>glColor</code>. The bytes are
* interpreted as unsigned values by bitwise ANDing them with the
* value <code>0xff</code>.
*
* @see #glColor4f(float red, float green, float blue, float alpha)
*/
void glColor4ub(byte red, byte green, byte blue, byte alpha);
// Textures
/**
* Integer version of <code>glTexEnv</code>.
*
* @see #glTexEnvf(int target, int pname, float param)
*/
void glTexEnvi(int target, int pname, int param);
/**
* Integer array version of <code>glTexEnv</code>.
*
* @see #glTexEnvfv(int target, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glTexEnviv(int target, int pname, int[] params, int offset);
/**
* Integer <code>Buffer</code> version of
* <code>glTexEnvfv</code>.
*
* @see #glTexEnvfv(int target, int pname, float[] params, int offset)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glTexEnviv(int target, int pname, IntBuffer params);
/**
* Floating-point array version of
* <code>glTexParameter</code>.
*
* @see #glTexParameterf(int target, int pname, float param)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glTexParameterfv(int target, int pname, float[] params, int offset);
/**
* Floating-point <code>Buffer</code> version of
* <code>glTexParameter</code>.
*
* @see #glTexParameterf(int target, int pname, float param)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glTexParameterfv(int target, int pname, FloatBuffer params);
/**
* Integer version of <code>glTexParameter</code>.
*
* @see #glTexParameterf(int target, int pname, float param)
*/
void glTexParameteri(int target, int pname, int param);
/**
* Integer array version of <code>glTexParameter</code>.
*
* @see #glTexParameterf(int target, int pname, float param)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glTexParameteriv(int target, int pname, int[] params, int offset);
/**
* Integer <code>Buffer</code> version of
* <code>glTexParameter</code>.
*
* @see #glTexParameterf(int target, int pname, float param)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glTexParameteriv(int target, int pname, IntBuffer params);
/**
* Fixed-point array version of
* <code>glTexParameter</code>.
*
* @see #glTexParameterf(int target, int pname, float param)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if <code>offset</code> is
* less than 0.
* @exception IllegalArgumentException if <code>params.length -
* offset</code> is smaller than the number of values required by
* the parameter.
*/
void glTexParameterxv(int target, int pname, int[] params, int offset);
/**
* Fixed-point <code>Buffer</code> version of
* <code>glTexParameter</code>.
*
* @see #glTexParameterf(int target, int pname, float param)
*
* @exception IllegalArgumentException if <code>params</code> is
* <code>null</code>.
* @exception IllegalArgumentException if
* <code>params.remaining()</code> is smaller than the number of
* values required by the parameter.
*/
void glTexParameterxv(int target, int pname, IntBuffer params);
/**
* VBO version of <code>glColorPointer</code>.
*
* @see #glBindBuffer
* @see #glColorPointer(int size, int type, int stride, Buffer pointer)
*
* @exception IllegalStateException if VBOs are not enabled.
* @exception ArrayIndexOutOfBoundsException if <code>offset</code>
* is less than 0 or greater than or equal to the length of the
* currently bound buffer.
*/
void glColorPointer(int size, int type, int stride, int offset);
/**
* VBO version of <code>glNormalPointer</code>.
*
* @see #glBindBuffer
* @see #glNormalPointer(int type, int stride, Buffer pointer)
*
* @exception IllegalStateException if VBOs are not enabled.
* @exception ArrayIndexOutOfBoundsException if <code>offset</code>
* is less than 0 or greater than or equal to the length of the
* currently bound buffer.
*/
void glNormalPointer(int type, int stride, int offset);
/**
* VBO version of <code>glTexCoordPointer</code>.
*
* @see #glBindBuffer
* @see #glTexCoordPointer(int size, int type, int stride, Buffer pointer)
*
* @exception IllegalStateException if VBOs are not enabled.
* @exception ArrayIndexOutOfBoundsException if <code>offset</code>
* is less than 0 or greater than or equal to the length of the
* currently bound buffer.
*/
void glTexCoordPointer(int size, int type, int stride, int offset);
/**
* VBO version of <code>glVertexPointer</code>.
*
* @see #glBindBuffer
* @see #glVertexPointer(int size, int type, int stride, Buffer pointer)
*
* @exception IllegalStateException if VBOs are not enabled.
* @exception ArrayIndexOutOfBoundsException if <code>offset</code>
* is less than 0 or greater than or equal to the length of the
* currently bound buffer.
*/
void glVertexPointer(int size, int type, int stride, int offset);
/**
* VBO version of <code>glDrawElements</code>.
*
* @see #glBindBuffer
* @see #glDrawElements(int mode, int count, int type, Buffer indices)
*
* @exception IllegalStateException if the most recent call to
* <code>glBindBuffer</code> for the
* <code>GL_ELEMENT_ARRAY_BUFFER</code> target had a
* <code>buffer</code> parameter of 0 (i.e., an index buffer is not
* bound).
* @exception ArrayIndexOutOfBoundsException if any index in the
* sequence of indices from <code>offset</code> to <code>offset +
* count - 1</code> would result in a reference to an entry outside
* of the currently bound index or data (vertex, color, normal,
* texture coordinate array, weight, matrix index, or point size)
* array, where <code>indices</code> refers to the set of values
* bound to the <code>GL_ELEMENT_ARRAY_BUFFER</code> target.
*/
void glDrawElements(int mode, int count, int type, int offset);
/// End 1.1
/// Begin 1.1 core extensions
/**
* Constant for use with <code>glGet</code>
* (<code>OES_matrix_get</code> extension).
*/
int GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D;
/**
* Constant for use with <code>glGet</code>
* (<code>OES_matrix_get</code> extension).
*/
int GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898E;
/**
* Constant for use with <code>glGet</code>
* (<code>OES_matrix_get</code> extension).
*/
int GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898F;
// OES_point_sprite extension (required profile extension in 1.1)
/**
* Constant for use with <code>glTexEnv</code> and
* <code>glEnable</code> (<code>OES_point_sprite</code>
* extension).
*/
int GL_POINT_SPRITE_OES = 0x8861;
/**
* Constant for use with <code>glTexEnv</code>
* (<code>OES_point_sprite</code> extension).
*/
int GL_COORD_REPLACE_OES = 0x8862;
// OES_point_size_array extension (required profile extension in 1.1)
/**
* Constant for use with <code>glEnableClientState</code> and
* <code>glDisableClientState</code>
* (<code>OES_point_size_array</code> extension).
*/
int GL_POINT_SIZE_ARRAY_OES = 0x8B9C;
/**
* Constant for use with <code>glGet</code>
* (<code>OES_point_size_array</code> extension).
*/
int GL_POINT_SIZE_ARRAY_TYPE_OES = 0x898A;
/**
* Constant for use with <code>glGet</code>
* (<code>OES_point_size_array</code> extension).
*/
int GL_POINT_SIZE_ARRAY_STRIDE_OES = 0x898B;
/**
* Constant for use with <code>glGetPointer</code>
* (<code>OES_point_size_array</code> extension).
*/
int GL_POINT_SIZE_ARRAY_POINTER_OES = 0x898C;
/**
* Constant for use with <code>glGet</code>
* (<code>OES_point_size_array</code> extension).
*/
int GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 0x8B9F;
/**
* (<code>OES_point_size_array</code> extension) Define an array of
* point sizes.
*
* <p><code>glPointSizePointer</code> specifies the location and
* data of an array of point sizes to use when rendering
* points. <code>type</code> is the data type of the
* coordinates. <code>stride</code> specifies the byte stride from
* one point size to the next, allowing vertices and attributes to
* be packed into a single array or stored in separate
* arrays. (Single-array storage may be more efficient on some
* implementations.)
*
* <p>The point sizes supplied in the point size arrays will be the
* sizes used to render both points and point sprites.
*
* <p>Distance-based attenuation works in conjunction with
* <code>GL_POINT_SIZE_ARRAY_OES</code>. If distance-based
* attenuation is enabled the point size from the point size array
* will be attenuated as defined by <code>glPointParameter</code>,
* to compute the final point size.
*
* <p>When a point size array is specified, <code>type</code>,
* <code>stride</code>, and <code>pointer</code> are saved as
* client-side state.
*
* <p>If the point size array is enabled, it is used to control the
* sizes used to render points and point sprites. To enable and
* disable the point size array, call
* <code>glEnableClientState</code> and
* <code>glDisableClientState</code> with the argument
* <code>GL_POINT_SIZE_ARRAY_OES</code>. The point size array is
* initially disabled.
*
* <h4>Notes</h4>
*
* <p>If point size array is enabled, the point size defined by
* <code>glPointSize</code> is ignored.
*
* <p><code>glPointSizePointer</code> is typically implemented on
* the client side.
*
* <h4>Errors</h4>
*
* <p><code>GL_INVALID_ENUM</code> is generated if <code>type</code>
* is is not an accepted value.
*
* <p><code>GL_INVALID_VALUE</code> is generated if
* <code>stride</code> is negative.
*
* @param type Specifies the data type of each point size in the
* array. Symbolic constants <code>GL_FIXED</code> and
* <code>GL_FLOAT</code> are accepted. The initial value is
* <code>GL_FLOAT</code>.
* @param stride Specifies the byte offset between consecutive point
* sizes. If <code>stride</code> is 0, the point sizes are
* understood to be tightly packed in the array. The initial value
* is 0.
* @param pointer Specifies a <code>Buffer</code> containing the
* point sizes starting at the first vertex in the array. The
* initial value is 0.
*
* @exception IllegalArgumentException if <code>pointer</code> is
* <code>null</code>.
* @exception IllegalStateException if VBOs are enabled.
*/
void glPointSizePointerOES(int type, int stride, Buffer pointer);
/**
* (<code>OES_point_size_array</code> extension) VBO version of
* <code>glPointSizePointerOES</code>.
*
* @see #glPointSizePointerOES(int type, int stride, Buffer pointer)
*
* @exception IllegalStateException if VBOs are not enabled.
*/
void glPointSizePointerOES(int type, int stride, int offset);
// End 1.1 core extensions
}