/*
 * Copyright  1990-2006 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;


/**
 * The <code>GL</code> interface is the parent interface for
 * the Java(TM) programming language bindings for OpenGL(R) ES 1.0,
 * 1.1, and extensions.
 *
 * <p> The documentation in this interface and its subinterfaces is
 * normative with respect to instance variable names and values,
 * method names and signatures, and exception behavior.  The remaining
 * documentation is placed here for convenience and does not replace
 * the normative documentation found in the OpenGL ES 1.0 and 1.1
 * specifications, relevant extension specifications, and the OpenGL
 * specification versions referenced by any of the preceding
 * specifications.
 *
 * <p> A GL object is obtained by calling
 * <code>EGLContext.getGL()</code>.  The returned object will
 * implement either <code>GL10</code> or <code>GL11</code>, plus any
 * available extension interfaces (such as <code>GL10Ext</code>,
 * <code>GL11Ext</code>, or <code>GL11ExtensionPack</code>).  The
 * returned object must be cast to the appropriate interface (possibly
 * following an <code>instanceof</code> check) in order to call
 * GL methods.
 *
 * <p> A common superinterface is used for OpenGL ES 1.0, OpenGL ES
 * 1.1, and Khronos-defined core extensions. In order to determine if
 * the implementation supports GL 1.1, call
 * <code>glGetString(GL.GL_VERSION)</code>.
 *
 * <p> Some methods defined in subinterfaces are available only on
 * OpenGL ES 1.1.  The descriptions of these functions are marked
 * "(1.1 only)."  Similarly, some methods behave slightly differently
 * across OpenGL ES versions.  The sections that differ are marked
 * "(1.0 only)" and "(1.1 only)" as appropriate.  Some methods have an
 * additional section marked "1.0 Notes" or "1.1 Notes" that applies
 * to the corresponding engine version.
 *
 * <p> Some extensions are defined as a core part of the OpenGL ES
 * specification (they are extensions relative to desktop OpenGL).
 * These functions are treated as normal portions of OpenGL ES,
 * although they may still be queried as extensions using the normal
 * OpenGL ES query mechanisms.
 *
 * <p> Extensions may allow some arguments to take on values other
 * than those listed in this specification.  Implementations that
 * provide a given extension may pass such values to the underlying
 * engine.
 *
 * <p> Optional profile extensions defined as of the creation of this
 * specification may be found in the <code>GL10Ext</code>,
 * <code>GL11Ext</code>, and <code>GL11ExtensionPack</code>
 * interfaces.
 *
 * <h3>Vertex Buffer Objects</h3>
 *
 * <p>VBOs are considered to be enabled if the most recent call to
 * <code>glBindBuffer</code> had a target of
 * <code>GL_ARRAY_BUFFER</code> and a non-zero <code>buffer</code>
 * parameter.  When VBOs are enabled, only the variant of the
 * <code>gl*Pointer</code> functions that take an integer offset
 * (found in the <code>GL11</code> interface) may be called.  When
 * VBOs are disabled, only the variant of the <code>gl*Pointer</code>
 * functions that take a <code>Buffer</code> may be called.
 *
 * <h3>Clamping</h3>
 * 
 * <p>When method specifies that a value <code>x</code> is clamped to
 * a range <code>[A, B]</code>, it means that the value
 * <code>min(max(x, A), B)</code> is used in place of the original
 * value.
 */
public interface GL {

    // public void dispose();
}

