/* * 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>GL11ExtensionPack</code> interface contains the Java(TM) * programming language bindings for the OpenGL ES 1.1 Extension Pack. * The runtime OpenGL ES engine may or may not implement any * particular extensions defined in the extension pack. Functions * that require a particular extension will throw an * <code>UnsupportedOperationException</code> if the extension is not * available at runtime. * * <p> The OpenGL ES 1.1 Extension Pack consists of the following extensions: * * <ul> * <li>OES_texture_env_crossbar</li> * <li>OES_texture_mirrored_repeat</li> * <li>OES_texture_cube_map</li> * <li>OES_blend_subtract</li> * <li>OES_blend_func_separate</li> * <li>OES_blend_equation_separate</li> * <li>OES_stencil_wrap</li> * <li>OES_extended_matrix_palette</li> * <li>OES_framebuffer_object</li> * </ul> * * <p> The specification for the OpenGL ES 1.1 Extension Pack may be * found at <a * href="http://www.khronos.org/cgi-bin/fetch/fetch.cgi?opengles_spec_1_1_extension_pack">http://www.khronos.org/cgi-bin/fetch/fetch.cgi?opengles_spec_1_1_extension_pack</a>. * * <p> The documentation in this class 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.1 Extension Pack specification, OpenGL ES * specification, relevant extension specifications, and the OpenGL * specification versions referenced by any of the preceding * specifications. */ public interface GL11ExtensionPack extends GL { // /** // * Flag indicating the presence of the "texture env crossbar" // * extension. <code>OES_texture_env_crossbar</code> is an optional // * profile extension in OpenGL ES 1.1, and is part of the OpenGL ES // * 1.1 Extension Pack. // * // * <p> The value of this flag does not imply the presence of the // * extension in the runtime enviroment. // */ // int GL_OES_texture_env_crossbar = 1; /** * (<code>OES_texture_env_crossbar</code> extension) * Set texture environment parameters. * * <p> The <code>OES_texture_env_crossbar</code> extension adds the * capability to use the texture color from other texture units as * sources to the <code>COMBINE</code> texture function. OpenGL ES * 1.1 defined texture combine functions which could use the color * from the current texture unit as a source. This extension adds * the ability to use the color from any texture unit as a source. * * <p> The tables that define arguments for <code>COMBINE_RGB</code> * and <code>COMBINE_ALPHA</code> functions are extended to include * <code>TEXTURE</code><i>n</i>: * * <pre> * SRCn_RGB OPERANDn_RGB Argument * * TEXTURE SRC_COLOR Cs * ONE_MINUS_SRC_COLOR 1 - Cs * SRC_ALPHA As * ONE_MINUS_SRC_ALPHA 1 - As * * TEXTUREn SRC_COLOR Cs^n * ONE_MINUS_SRC_COLOR 1 - Cs^n * SRC_ALPHA As^n * ONE_MINUS_SRC_ALPHA 1 - As^n * * CONSTANT SRC_COLOR Cc * ONE_MINUS_SRC_COLOR 1 - Cc * SRC_ALPHA Ac * ONE_MINUS_SRC_ALPHA 1 - Ac * * PRIMARY_COLOR SRC_COLOR Cf * ONE_MINUS_SRC_COLOR 1 - Cf * SRC_ALPHA Af * ONE_MINUS_SRC_ALPHA 1 - Af * * PREVIOUS SRC_COLOR Cp * ONE_MINUS_SRC_COLOR 1 - Cp * SRC_ALPHA Ap * ONE_MINUS_SRC_ALPHA 1 - Ap * </pre> * * @param param additionally accept <code>TEXTURE</code><i>n</i>, * where <i>n</i> is a number between 0 and 31, inclusive. * * @see GL11#glTexEnvf(int target, int pname, float param) */ void glTexEnvf(int target, int pname, float param); /** * (<code>OES_texture_env_crossbar</code> extension) * Floating-point array version of <code>glTexEnv</code>. * * @see #glTexEnvf(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 glTexEnvfv(int target, int pname, float[] params, int offset); /** * (<code>OES_texture_env_crossbar</code> extension) * Floating-point <code>Buffer</code> version of * <code>glTexEnv</code>. * * @see #glTexEnvf(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 glTexEnvfv(int target, int pname, FloatBuffer params); /** * (<code>OES_texture_env_crossbar</code> extension) * Integer version of <code>glTexEnv</code>. * * @see #glTexEnvf(int target, int pname, float param) */ void glTexEnvx(int target, int pname, int param); /** * (<code>OES_texture_env_crossbar</code> extension) * Fixed-point array version of <code>glTexEnv</code>. * * @see #glTexEnvf(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 glTexEnvxv(int target, int pname, int[] params, int offset); /** * (<code>OES_texture_env_crossbar</code> extension) * Fixed-point <code>Buffer</code> version of <code>glTexEnv</code>. * * @see #glTexEnvf(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 glTexEnvxv(int target, int pname, IntBuffer params); // /** // * Flag indicating the presence of the "texture mirrored repeat" // * extension. <code>OES_texture_mirrored_repeat</code> is an optional // * profile extension in OpenGL ES 1.1, and is part of the OpenGL ES // * 1.1 Extension Pack. // * // * <p> The value of this flag does not imply the presence of the // * extension in the runtime enviroment. // */ // int GL_OES_texture_mirrored_repeat = 1; /** * Constant for use with <code>glTexParameter</code> and * <code>glGetTexParameter</code> * (<code>OES_texture_mirrored_repeat</code> extension). */ int GL_MIRRORED_REPEAT = 0x8370; /** * (<code>OES_texture_mirrored_repeat</code> extension) * Set texture parameters. * * <p> An additional option is accepted for * <code>GL_TEXTURE_WRAP_S</code> and * <code>GL_TEXTURE_WRAP_T</code></li> parameters. * <code>GL_MIRRORED_REPEAT</code> effectively uses a texture map * twice as large as the original image im which the additional * half, for each coordinate, of the new image is a mirror image of * the original image. * * @see GL11#glTexParameterf(int target, int pname, float param) */ void glTexParameterf(int target, int pname, float param); // /** // * Flag indicating the presence of the "texture cube map" extension. // * <code>OES_texture_cube_map</code> is an optional profile // * extension in OpenGL ES 1.1, and is part of the OpenGL ES 1.1 // * Extension Pack. // * // * <p> The value of this flag does not imply the presence of the // * extension in the runtime enviroment. // */ // int GL_OES_texture_cube_map = 1; /** * Constant for use with <code>glTexGen</code> * (<code>OES_texture_cube_map</code> extension). */ int GL_NORMAL_MAP = 0x8511; /** * Constant for use with <code>glTexGen</code> * (<code>OES_texture_cube_map</code> extension). */ int GL_REFLECTION_MAP = 0x8512; /** * Constant for use with <code>glBindTexture</code>, * <code>glTexParameter</code>, <code>glEnable</code>, * <code>glDisable</code>, and <code>glIsEnabled</code> * (<code>OES_texture_cube_map</code> extension). */ int GL_TEXTURE_CUBE_MAP = 0x8513; /** * Constant for use with <code>glGetInteger</code> * (<code>OES_texture_cube_map</code> extension). */ int GL_TEXTURE_BINDING_CUBE_MAP = 0x8514; // Need revisit - value /** * Constant for use with <code>glTexGen</code> for the * <code>OES_texture_cube_map</code> extension. */ int GL_STR = -1; /** * Constant for use with <code>glTexGen</code> * (<code>OES_texture_cube_map</code> extension). */ int GL_TEXTURE_GEN_MODE = 0x2500; /** * Constant for use with <code>glEnable</code> and * <code>glDisable</code> (<code>OES_texture_cube_map</code> * extension). */ int GL_TEXTURE_GEN_STR = 0x8D60; /** * Constant for use with <code>glTexImage2D</code> and * <code>glCompressedTexImage2D</code> * (<code>OES_texture_cube_map</code> extension). */ int GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x207D; /** * Constant for use with <code>glTexImage2D</code> and * <code>glCompressedTexImage2D</code> * (<code>OES_texture_cube_map</code> extension). */ int GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x207E; /** * Constant for use with <code>glTexImage2D</code> and * <code>glCompressedTexImage2D</code> * (<code>OES_texture_cube_map</code> extension). */ int GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x207F; /** * Constant for use with <code>glTexImage2D</code> and * <code>glCompressedTexImage2D</code> * (<code>OES_texture_cube_map</code> extension). */ int GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x2080; /** * Constant for use with <code>glTexImage2D</code> and * <code>glCompressedTexImage2D</code> * (<code>OES_texture_cube_map</code> extension). */ int GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x2081; /** * Constant for use with <code>glTexImage2D</code> and * <code>glCompressedTexImage2D</code> * (<code>OES_texture_cube_map</code> extension). */ int GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x2082; /** * Constant for use with <code>glGetIntegerv</code> * (<code>OES_texture_cube_map</code> extension). */ int GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C; /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Bind a named texture to a texturing target. * * <p> The <code>OES_texture_cube_map</code> extension allows the * value <code>GL_TEXTURE_CUBE_MAP</code> to be passed to the * <code>target</code> parameter. * * @param target additionally accepts * <code>GL_TEXTURE_CUBE_MAP</code>. * * @see GL11#glBindTexture(int target, int texture) */ void glBindTexture(int target, int texture); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Specify a two-dimensional compressed texture image. * * <p> The <code>OES_texture_cube_map</code> extension allows the * values * <code>GL_TEXTURE_CUBE_MAP_{POSITIVE,NEGATIVE}_{X,Y,Z}</code> to * be passed to the <code>target</code> parameter. * * @param target additionally accepts the constants * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>, * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>, * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>, * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>, * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>, and * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>. * * @see GL11#glCompressedTexImage2D * * @exception IllegalArgumentException if <code>data</code> is * <code>null</code>. * @exception IllegalArgumentException if * <code>data.remaining()</code> is less than * <code>imageSize</code>. */ void glCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int imageSize, Buffer data); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Specify a two-dimensional texture image with pixels from the * color buffer. * * <p> The <code>OES_texture_cube_map</code> extension allows the * values * <code>GL_TEXTURE_CUBE_MAP_{POSITIVE,NEGATIVE}_{X,Y,Z}</code> to * be passed to the <code>target</code> parameter. * * @param target additionally accepts the constants * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>, * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>, * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>, * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>, * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>, and * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>. * * @see GL11#glCompressedTexImage2D */ void glCopyTexImage2D(int target, int level, int internalformat, int x, int y, int width, int height, int border); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Enable server-side GL capabilities. * * <p>Cube-map texturing is enabled if <code>cap</code> assumes the * value <code>GL_TEXTURE_CUBE_MAP</code>. * * <p>If enabled, cube-map texturing is performed for the active * texture unit. See <code>GL.glActiveTexture</code>, * <code>GL.glTexImage2D</code>, <code>glCompressedTexImage2D</code>, * and <code>glCopyTexImage2D</code>. * * <p>Texture coordinates with be generated if <code>cap</code> is * equal to <code>GL_TEXTURE_GEN_STR</code>. * * @see GL11#glEnable(int cap) */ void glEnable(int cap); /** * (1.1 + <code>OES_texture_cube_map</code>, * <code>OES_blend_subtract</code>, * <code>OES_blend_func_separate</code>, and * <code>OES_blend_equation_separate</code> extensions) Return the * value or values of a selected parameter. * * <p> The extensions in the GL 1.1 Extension Pack add the following * constants as possible values for <code>pname</code>: * * <ul> * * <li><code>GL_BLEND_DST_ALPHA</code> (1.1 + * <code>OES_blend_func_separate</code> extension)</li> * * <p><code>params</code> returns one value, the symbolic constant * identifying the destination blend function set by * <code>glBlendFunc</code>, or the destination alpha blend function * set by <code>glBlendFuncSeparate</code>. See * <code>glBlendFunc</code> and <code>glBlendFuncSeparate</code>. * * <li><code>GL_BLEND_DST_RGB</code> (1.1 + * <code>OES_blend_func_separate</code> extension)</li> * * <p><code>params</code> returns one value, the symbolic constant * identifying the destination blend function set by * <code>glBlendFunc</code>, or the destination RGB blend function * set by <code>glBlendFuncSeparate</code>. See * <code>glBlendFunc</code> and <code>glBlendFuncSeparate</code>. * * <li><code>GL_BLEND_EQUATION</code> (1.1 + * <code>OES_blend_subtract</code> and * <code>OES_blend_equation_separate</code> extensions)</li> * * <p><code>params</code> returns one value, the symbolic constant * identifying the blend equation set by * <code>glBlendEquation</code>, or the RGB blend equation set by * <code>glBlendEquationSeparate</code>. See * <code>glBlendEquation</code> and * <code>glBlendEquationSeparate</code>. * * <li><code>GL_BLEND_EQUATION_ALPHA</code> (1.1 + * <code>OES_blend_equation_separate</code> extension)</li> * * <p><code>params</code> returns one value, the symbolic constant * identifying the blend equation set by * <code>glBlendEquation</code>, or the alpha blend equation set by * <code>glBlendEquationSeparate</code>. See * <code>glBlendEquation</code> and * <code>glBlendEquationSeparate</code>. * * <li><code>GL_BLEND_EQUATION_RGB</code> (1.1 + * <code>OES_blend_subtract</code> and * <code>OES_blend_equation_separate</code> extensions)</li> * * <p><code>params</code> returns one value, the symbolic constant * identifying the blend equation set by * <code>glBlendEquation</code>, or the RGB blend equation set by * <code>glBlendEquationSeparate</code>. See * <code>glBlendEquation</code> and * <code>glBlendEquationSeparate</code>. * * <li><code>GL_BLEND_SRC</code> (1.1 only)</li> * * <p><code>params</code> returns one value, the symbolic constant * identifying the source blend function set by <code>glBlendFunc</code>, * or the source RGB blend function set by * <code>glBlendFuncSeparate</code>. See <code>glBlendFunc</code> and * <code>glBlendFuncSeparate</code>. * * <li><code>GL_BLEND_SRC_ALPHA</code> (1.1 + * <code>OES_blend_func_separate</code> extension)</li> * * <p><code>params</code> returns one value, the symbolic constant * identifying the source blend function set by <code>glBlendFunc</code>, * or the source alpha blend function set by * <code>glBlendFuncSeparate</code>. See <code>glBlendFunc</code> and * <code>glBlendFuncSeparate</code>. * * <li><code>GL_BLEND_SRC_RGB</code> (1.1 + * <code>OES_blend_func_separate</code> extension)</li> * * <p><code>params</code> returns one value, the symbolic constant * identifying the source blend function set by <code>glBlendFunc</code>, * or the source RGB blend function set by * <code>glBlendFuncSeparate</code>. See <code>glBlendFunc</code> and * <code>glBlendFuncSeparate</code>. * * <li><code>GL_MAX_CUBE_MAP_TEXTURE_SIZE</code> (1.1 + * <code>OES_texture_cube_map</code> extension)</li> * * <p><code>params</code> returns one value, the maximum dimension * of any face in a cube map texture. The value must be at least * 64. See <code>glTexImage2D</code>, * <code>glCompressedTexImage2D</code>, and * <code>glCopyTexImage2D</code>. * * <li><code>GL_MAX_PALETTE_MATRICES_OES</code> * (<code>OES_matrix_palette</code> extension)</li> * * <p><code>params</code> returns the size of the matrix * palette. The initial value is 32 if the * <code>OES_extended_matrix_palette</code> extension is present. * * <li><code>GL_MAX_VERTEX_UNITS_OES</code> * (<code>OES_matrix_palette</code> extension)</li> * * <p><code>params</code> returns the number of matrices per * vertex. The initial value is 4 if the * <code>OES_extended_matrix_palette</code> extension is present. * * </ul> * * @see GL11#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 glGetIntegerv(int pname, int[] params, int offset); /** * (1.1 + <code>OES_texture_cube_map</code>, * <code>OES_blend_subtract</code>, * <code>OES_blend_func_separate</code>, and * <code>OES_blend_equation_separate</code> extensions) * Integer <code>Buffer</code> version of * <code>getGetIntegerv</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 glGetIntegerv(int pname, IntBuffer params); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Specify texture coordinate generation function. * * <p>The <code>OES_texture_cube_map</code> extension provides a new * texture generation scheme for cube map textures. Instead of the * current texture providing a 2D lookup into a 2D texture image, * the texture is a set of six 2D images representing the faces of a * cube. The <code>(s,t,r)</code> texture coordinates are treated as * a direction vector emanating from the center of a cube. At * texture generation time, the interpolated per-fragment * <code>(s,t,r)</code> selects one cube face 2D image based on the * largest magnitude coordinate (the major axis). A new 2D * <code>(s,t)</code> is calculated by dividing the two other * coordinates (the minor axes values) by the major axis value. Then * the new <code>(s,t)</code> is used to lookup into the selected 2D * texture image face of the cube map. * * <p>Unlike a standard 2D texture that have just one target, a cube * map texture has six targets, one for each of its six 2D texture * image cube faces. All these targets must be consistent, complete, * and have equal width and height. * * <p>This extension also provides two new texture coordinate * generation modes for use in conjunction with cube map * texturing. The reflection map mode generates texture coordinates * <code>(s,t,r)</code> matching the vertex?s eyespace reflection * vector. The reflection map mode is useful for environment mapping * without the singularity inherent in sphere mapping. The normal * map mode generates texture coordinates <code>(s,t,r)</code> * matching the vertex?s transformed eyespace normal. The normal map * mode is useful for sophisticated cube map texturing-based diffuse * lighting models. * * <p>The intent of the new texgen functionality is that an * application using cube map texturing can use the new texgen modes * to automatically generate the reflection or normal vectors used * to look up into the cube map texture. * * <p>The following texgen modes are supported: <code>GL_REFLECTION * MAP</code> and <code>GL_NORMAL MAP</code>. The * <code>GL_SPHERE_MAP</code>, <code>GL_OBJECT LINEAR</code>, and * <code>GL_EYE LINEAR</code> texgen modes are not supported. Texgen * supports a new coord value <code>GL_STR</code>. This allows the * application to specify the texgen mode for the appropriate * coordinates in a single call. Texgen with coord values of * <code>GL_S</code>, <code>GL_T</code>, <code>GL_R</code> and * <code>GL_Q</code> are not supported. * * <h4>Errors</h4> * * <p><code>GL_INVALID_ENUM</code> is generated if * <code>param</code> or <code>pname</code> is not an accepted * value, or if <code>pname</code> is * <code>GL_TEXTURE_GEN_MODE</code> and <code>params</code> is not * <code>GL_REFLECTION_MAP</code> or <code>GL_NORMAL_MAP</code>. * * <h4>Associated Gets</h4> * * <p><code>glGetTexGen</code>, <code>glIsEnabled</code> with * argument <code>GL_TEXTURE_GEN_STR</code>. * * @param coord Specifies the texture coordinate or coordinates for * which a generation function is being specified. At present, only * <code>GL_STR</code> is accepted. * @param pname Specifies a single-valued integer texture coordinate * generation parameter. At present, only * <code>GL_TEXTURE_GEN_MODE</code> is accepted. * @param param Specifies the value that <code>pname</code> will be * set to. If <code>pname</code> is <code>GL_TEXTURE_GEN_MODE</code>, then * <code>GL_REFLECTION_MAP</code> and <code>GL_NORMAL_MAP</code> are * accepted. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_texture_cube_map</code> extension. */ void glTexGeni(int coord, int pname, int param); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Floating-point version of <code>glTexGen</code>. * * @see #glTexGeni(int coord, int pname, int param) * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_texture_cube_map</code> extension. */ void glTexGenf(int coord, int pname, float param); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Fixed-point version of <code>glTexGen</code>. * * @see #glTexGeni(int coord, int pname, int param) * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_texture_cube_map</code> extension. */ void glTexGenx(int coord, int pname, int param); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Floating-point array version of <code>glTexGen</code>. * * @see #glTexGeni(int coord, int pname, int param) * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_texture_cube_map</code> extension. * @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 glTexGenfv(int coord, int pname, float[] params, int offset); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Floating-point <code>Buffer</code> version of * <code>glTexGen</code>. * * @see #glTexGeni(int coord, int pname, int param) * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_texture_cube_map</code> extension. * @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 glTexGenfv(int coord, int pname, FloatBuffer params); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Integer array version of <code>glTexGen</code>. * * @see #glTexGeni(int coord, int pname, int param) * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_texture_cube_map</code> extension. * @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 glTexGeniv(int coord, int pname, int[] params, int offset); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Integer <code>Buffer</code> version of <code>glTexGen</code>. * * @see #glTexGeni(int coord, int pname, int param) * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_texture_cube_map</code> extension. * @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 glTexGeniv(int coord, int pname, IntBuffer params); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Fixed-point array version of <code>glTexGen</code>. * * @see #glTexGeni(int coord, int pname, int param) * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_texture_cube_map</code> extension. * @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 glTexGenxv(int coord, int pname, int[] params, int offset); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Fixed-point <code>Buffer</code> version of <code>glTexGen</code>. * * @see #glTexGeni(int coord, int pname, int param) * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_texture_cube_map</code> extension. * @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 glTexGenxv(int coord, int pname, IntBuffer params); // GetTexGen /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Get texture coordinate generation parameters. * * This method queries texture coordinate generation parameters set * using <code>glTexGen</code>. * * <h4>Errors</h4> * * <p><code>GL_INVALID_ENUM</code> is generated if * <code>param</code> or <code>pname</code> is not an accepted * value, or if <code>pname</code> is * <code>GL_TEXTURE_GEN_MODE</code> and <code>params</code> is not * <code>GL_REFLECTION_MAP</code> or <code>GL_NORMAL_MAP</code>. * * @param coord Specifies the texture coordinate or coordinates for * which a generation parameter is being requested. At present, only * <code>GL_STR</code> is accepted. * @param pname Specifies a single-valued integer texture coordinate * generation parameter. At present, only * <code>GL_TEXTURE_GEN_MODE</code> is accepted. * @param params Returns the value or values of the specified * parameter. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_texture_cube_map</code> extension. * @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 glGetTexGeniv(int coord, int pname, int[] params, int offset); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Integer <code>Buffer</code> version of <code>glGetTexGen</code>. * * @see #glGetTexGeniv(int coord, int pname, int[] params, int offset) * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_texture_cube_map</code> extension. * @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 glGetTexGeniv(int coord, int pname, IntBuffer params); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Floating-point array version of <code>glGetTexGen</code>. * * @see #glGetTexGeniv(int coord, int pname, int[] params, int offset) * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_texture_cube_map</code> extension. * @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 glGetTexGenfv(int coord, int pname, float[] params, int offset); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Fixed-point array version of <code>glGetTexGen</code>. * * @see #glGetTexGeniv(int coord, int pname, int[] params, int offset) * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_texture_cube_map</code> extension. * @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 glGetTexGenxv(int coord, int pname, int[] params, int offset); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Fixed-point <code>Buffer</code> version of <code>glGetTexGen</code>. * * @see #glGetTexGeniv(int coord, int pname, int[] params, int offset) * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_texture_cube_map</code> extension. * @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 glGetTexGenxv(int coord, int pname, IntBuffer params); /** * (1.1 + <code>OES_texture_cube_map</code> extension) * Floating-point <code>Buffer</code> version of <code>glGetTexGen</code>. * * @see #glGetTexGeniv(int coord, int pname, int[] params, int offset) * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_texture_cube_map</code> extension. * @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 glGetTexGenfv(int coord, int pname, FloatBuffer params); // /** // * Flag indicating the presence of the "blend subtract" extension. // * <code>OES_blend_subtract</code> is an optional profile extension // * in OpenGL ES 1.1, and is part of the OpenGL ES 1.1 Extension // * Pack. // * // * <p> The value of this flag does not imply the presence of the // * extension in the runtime enviroment. // */ // int GL_OES_blend_subtract = 1; /** * Constant for use with <code>glBlendEquation</code> * (<code>OES_blend_subtract</code> extension). */ int GL_FUNC_ADD = 0x8006; /** * Constant for use with <code>glBlendEquation</code> * (<code>OES_blend_subtract</code> extension). */ int GL_FUNC_SUBTRACT = 0x800A; /** * Constant for use with <code>glBlendEquation</code> * (<code>OES_blend_subtract</code> extension). */ int GL_FUNC_REVERSE_SUBTRACT = 0x800B; /** * (1.1 + <code>OES_blend_subtract</code> extension) Specify the * blending equation. * * <p>Blending is controlled by <code>glBlendEquation</code>. * * <p><code>glBlendEquation</code> <code>mode</code> * <code>GL_FUNC_ADD</code> defines the blend equation as * * <pre>C = Cs * S + Cd * D,</pre> * * where <code>Cs</code> and <code>Cd</code> are the source and * destination colors, <code>S</code> and <code>D</code> are the * quadruplets of weighting factors determined by the blend * functions <code>glBlendFunc</code> and * <code>glBlendFuncSeparate</code>, and C is the new color * resulting from blending. * * <p>If <code>mode</code> is <code>GL_FUNC_SUBTRACT</code>, the * blending equation is defined as * * <pre>C = Cs * S - Cd * D.</pre> * * <p>If <code>mode</code> is <code>GL_FUNC_REVERSE_SUBTRACT</code>, * the blend equation is defined as * * <pre>C = Cd * D - Cs * S.</pre> * * <h4>Errors</h4> * * <p><code>GL_INVALID_ENUM</code> is generated if <code>mode</code> * is not an accepted value. * * <h4>Associated Gets</h4> * * <p><code>glGetIntegerv</code> with argument * <code>GL_BLEND_EQUATION</code> returns the blend equation. * * @param mode Specifies the blend * equation. <code>GL_FUNC_ADD</code>, * <code>GL_FUNC_SUBTRACT</code>, and * <code>GL_FUNC_REVERSE_SUBTRACT</code> are accepted. * * @see GL11#glBlendFunc * @see #glBlendFuncSeparate * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_blend_subtract</code> extension. */ void glBlendEquation(int mode); // /** // * Flag indicating the presence of the "blend func separate" // * extension. <code>OES_blend_func_separate</code> is an optional // * profile extension in OpenGL ES 1.1, and is part of the OpenGL ES // * 1.1 Extension Pack. // * // * <p> The value of this flag does not imply the presence // * of the extension in the runtime enviroment. // */ // int GL_OES_blend_func_separate = 1; /** * Constant for use with <code>glBlendFuncSeparate</code> * (<code>OES_blend_func_separate</code> extension). */ int GL_BLEND_DST_RGB = 0x80C8; /** * Constant for use with <code>glBlendFuncSeparate</code> * (<code>OES_blend_func_separate</code> extension). */ int GL_BLEND_SRC_RGB = 0x80C9; /** * Constant for use with <code>glBlendFuncSeparate</code> * (<code>OES_blend_func_separate</code> extension). */ int GL_BLEND_DST_ALPHA = 0x80CA; /** * Constant for use with <code>glBlendFuncSeparate</code> * (<code>OES_blend_func_separate</code> extension). */ int GL_BLEND_SRC_ALPHA = 0x80CB; /** * (1.1 + <code>GL_OES_blend_func_separate</code> extension) * Apply different blend factors to RGB and alpha. * * <p><code>glBlendFuncSeparate</code> allows different blend factors to be * applied to RGB and alpha. The blend factors are those defined for * <code>glBlendFunc</code>. * * <h4>Errors</h4> * * <p><code>GL_INVALID_ENUM</code> is generated if * <code>srcRGB</code>, <code>dstRGB</code>, <code>srcAlpha</code>, * or <code>dstAlpha</code> is not an accepted value. * * <h4>Associated Gets</h4> * * <p><code>glGetIntegerv</code> with argument * <code>GL_BLEND_SRC_RGB</code> or <code>GL_BLEND_SRC</code> * returns the source RGB blend function. * * <p><code>glGetIntegerv</code> with argument * <code>GL_BLEND_DST_RGB</code> or <code>GL_BLEND_DST</code> * returns the destination RGB blend function. * * <p><code>glGetIntegerv</code> with argument * <code>GL_BLEND_SRC_ALPHA</code> returns the source alpha blend * function. * * <p><code>glGetIntegerv</code> with argument * <code>GL_BLEND_DST_ALPHA</code> returns the destination alpha * blend function. * * @param srcRGB Source RGB blend function. Must be one of the blend * functions accepted by <code>glBlendFunc</code>. * @param dstRGB Destination RGB blend function. Must be one of the blend * functions accepted by <code>glBlendFunc</code>. * @param srcAlpha Source alpha blend function. Must be one of the * blend functions accepted by <code>glBlendFunc</code>. * @param dstAlpha Destination alpha blend function. Must be one of * the blend functions accepted by <code>glBlendFunc</code>. * * @see GL11#glBlendFunc * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_blend_func_separate</code> extension. */ void glBlendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha); // /** // * Flag indicating the presence of the "blend equation separate" // * extension. <code>OES_blend_equation_separate</code> is an // * optional profile extension in OpenGL ES 1.1, and is part of the // * OpenGL ES 1.1 Extension Pack. // * // * <p> The value of this flag does not imply the presence // * of the extension in the runtime enviroment. // */ // int GL_OES_blend_equation_separate = 1; /** * Constant for use with <code>glBlendEquationSeparate</code> and * <code>glGetInteger</code> * (<code>OES_blend_equation_separate</code> extension). */ int GL_BLEND_EQUATION = 0x8009; /** * Constant for use with <code>glBlendEquationSeparate</code> and * <code>glGetInteger</code> * (<code>OES_blend_equation_separate</code> extension). Synonym * for <code>GL_BLEND_EQUATION</code>. */ int GL_BLEND_EQUATION_RGB = 0x8009; /** * Constant for use with <code>glBlendEquationSeparate</code> and * <code>glGetInteger</code> * (<code>OES_blend_equation_separate</code> extension). */ int GL_BLEND_EQUATION_ALPHA = 0x883D; /** * (1.1 + <code>OES_blend_equation_separate</code> extension) * Provide different blend equations for RGB and alpha. * * <p><code>glBlendEquationSeparate</code> allows different blend * equations to be provideded for RGB and alpha. The blend equations * are those defined for <code>glBlendEquation</code>. * * <h4>Errors</h4> * * <p><code>GL_INVALID_ENUM</code> is generated if * <code>modeRGB</code>, or <code>modeAlpha</code> is not an * accepted value. * * <h4>Associated Gets</h4> * * <p><code>glGetIntegerv</code> with argument * <code>GL_BLEND_EQUATION_RGB</code> or * <code>GL_BLEND_EQUATION</code> returns the RGB blend equation. * * <p><code>glGetIntegerv</code> with argument * <code>GL_BLEND_EQUATION_ALPHA</code> returns the alpha blend * equation. * * @param modeRGB RGB blend equation. Must be one of the blend * equations accepted by <code>glBlendEquation</code>. * @param modeAlpha Alpha blend equation. Must be one of the blend * equations accepted by <code>glBlendEquation</code>. * * @see #glBlendEquation * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_blend_equation_separate</code> extension. */ void glBlendEquationSeparate(int modeRGB, int modeAlpha); // /** // * Flag indicating the presence of the "stencil wrap" extension. // * <code>OES_stencil_wrap</code> is an optional profile extension in // * OpenGL ES 1.1, and is part of the OpenGL ES 1.1 Extension Pack. // * // * <p> The value of this flag does not imply the presence of the // * extension in the runtime enviroment. // */ // int GL_OES_stencil_wrap = 1; /** * Constant for use with <code>glStencilOp</code> * (<code>OES_stencil_wrap</code> extension). */ int GL_INCR_WRAP = 0x8507; /** * Constant for use with <code>glStencilOp</code> * (<code>OES_stencil_wrap</code> extension). */ int GL_DECR_WRAP = 0x8508; /** * (<code>OES_stencil_wrap</code> extension) * Set stencil test actions. * * <p> Two additional actions are defined by the * <code>OES_stencil_wrap</code> extension: * * <ul> * * <li>(<code>OES_stencil_wrap</code> extension) * <code>GL_DECR_WRAP</code></li> * * <p>Decrements the current stencil buffer value, wrapping around * to the maximum representable unsigned value if less than 0. * * <li>(<code>OES_stencil_wrap</code> extension) * <code>GL_INCR</code></li> * * <p>Increments the current stencil buffer value, wrapping around * to 0 if greater than the maximum representable unsigned value. * * </ul> * * @see GL11#glStencilOp(int fail, int zfail, int zpass) */ void glStencilOp(int fail, int zfail, int zpass); // /** // * Flag indicating the presence of the "extended matrix palette" // * extension. <code>OES_extended_matrix_palette</code> is an // * optional profile extension in OpenGL ES 1.1, and is part of the // * OpenGL ES 1.1 Extension Pack. // * // * <p> The value of this flag does not imply the presence of the // * extension in the runtime enviroment. // */ // int GL_OES_extended_matrix_palette = 1; // /** // * Flag indicating the presence of the "framebuffer object" // * extension. <code>OES_framebuffer_object</code> is an optional // * profile extension in OpenGL ES 1.1, and is part of the OpenGL ES // * 1.1 Extension Pack. // * // * <p> The value of this flag does not imply the presence of the // * extension in the runtime enviroment. // */ // int GL_OES_framebuffer_object = 1; /** * Constant accepted by the <code>target</code> parameter of * <code>glBindFramebufferOES</code>, * <code>glCheckFramebufferStatusOES</code>, * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_FRAMEBUFFER_OES = 0x8D40; /** * Constant accepted by the <code>target</code> parameter of * <code>glBindRenderbufferOES</code>, * <code>glRenderbufferStorageOES</code>, and * <code>glGetRenderbufferParameterivOES</code>, and returned by * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RENDERBUFFER_OES = 0x8D41; /** * Constant accepted by the <code>pname</code> parameter of * <code>glGetRenderbufferParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RENDERBUFFER_WIDTH_OES = 0x8D42; /** * Constant accepted by the <code>pname</code> parameter of * <code>glGetRenderbufferParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RENDERBUFFER_HEIGHT_OES = 0x8D43; /** * Constant accepted by the <code>pname</code> parameter of * <code>glGetRenderbufferParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RENDERBUFFER_INTERNAL_FORMAT_OES = 0x8D44; /** * Constant accepted by the <code>pname</code> parameter of * <code>glGetRenderbufferParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RENDERBUFFER_RED_SIZE_OES = 0x8D50; /** * Constant accepted by the <code>pname</code> parameter of * <code>glGetRenderbufferParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RENDERBUFFER_GREEN_SIZE_OES = 0x8D51; /** * Constant accepted by the <code>pname</code> parameter of * <code>glGetRenderbufferParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RENDERBUFFER_BLUE_SIZE_OES = 0x8D52; /** * Constant accepted by the <code>pname</code> parameter of * <code>glGetRenderbufferParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RENDERBUFFER_ALPHA_SIZE_OES = 0x8D53; /** * Constant accepted by the <code>pname</code> parameter of * <code>glGetRenderbufferParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RENDERBUFFER_DEPTH_SIZE_OES = 0x8D54; /** * Constant accepted by the <code>pname</code> parameter of * <code>glGetRenderbufferParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RENDERBUFFER_STENCIL_SIZE_OES = 0x8D55; /** * Constant accepted by the <code>pname</code> parameter of * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 0x8CD0; /** * Constant accepted by the <code>pname</code> parameter of * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 0x8CD1; /** * Constant accepted by the <code>pname</code> parameter of * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 0x8CD2; /** * Constant accepted by the <code>pname</code> parameter of * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 0x8CD3; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT0_OES = 0x8CE0; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT1_OES = 0x8CE1; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT2_OES = 0x8CE2; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT3_OES = 0x8CE3; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT4_OES = 0x8CE4; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT5_OES = 0x8CE5; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT6_OES = 0x8CE6; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT7_OES = 0x8CE7; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT8_OES = 0x8CE8; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT9_OES = 0x8CE9; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT10_OES = 0x8CEA; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT11_OES = 0x8CEB; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT12_OES = 0x8CEC; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT13_OES = 0x8CED; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT14_OES = 0x8CEE; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_COLOR_ATTACHMENT15_OES = 0x8CEF; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_DEPTH_ATTACHMENT_OES = 0x8D00; /** * Constant accepted by the <code>attachment</code> parameter of * <code>glFramebufferTexture2DOES</code>, * <code>glFramebufferRenderbufferOES</code>, and * <code>glGetFramebufferAttachmentParameterivOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_STENCIL_ATTACHMENT_OES = 0x8D20; /** * Constant returned by <code>glCheckFramebufferStatusOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_FRAMEBUFFER_COMPLETE_OES = 0x8CD5; /** * Constant returned by <code>glCheckFramebufferStatusOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 0x8CD6; /** * Constant returned by <code>glCheckFramebufferStatusOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 0x8CD7; /** * Constant returned by <code>glCheckFramebufferStatusOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 0x8CD9; /** * Constant returned by <code>glCheckFramebufferStatusOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 0x8CDA; /** * Constant returned by <code>glCheckFramebufferStatusOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES = 0x8CDB; /** * Constant returned by <code>glCheckFramebufferStatusOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES = 0x8CDC; /** * Constant returned by <code>glCheckFramebufferStatusOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_FRAMEBUFFER_UNSUPPORTED_OES = 0x8CDD; /** * Constant accepted by <code>glGetIntegerv</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_FRAMEBUFFER_BINDING_OES = 0x8CA6; /** * Constant accepted by <code>glGetIntegerv</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RENDERBUFFER_BINDING_OES = 0x8CA7; /** * Constant accepted by <code>glGetIntegerv</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_MAX_COLOR_ATTACHMENTS_OES = 0x8CDF; /** * Constant accepted by <code>glGetIntegerv</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_MAX_RENDERBUFFER_SIZE_OES = 0x84E8; /** * Constant returned by <code>glGetError</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_INVALID_FRAMEBUFFER_OPERATION_OES = 0x0506; /** * Constant accepted by the <code>internalformat</code> parameter of * <code>glRenderbufferStorageOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RGB565_OES = 0x8D62; /** * Constant accepted by the <code>internalformat</code> parameter of * <code>glRenderbufferStorageOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RGBA4 = 0x8056; /** * Constant accepted by the <code>internalformat</code> parameter of * <code>glRenderbufferStorageOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RGB5_A1 = 0x8057; /** * Constant accepted by the <code>internalformat</code> parameter of * <code>glRenderbufferStorageOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_DEPTH_COMPONENT16 = 0x81A5; /** * Constant optionally accepted by the <code>internalformat</code> * parameter of <code>glRenderbufferStorageOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RGBA8 = 0x8058; /** * Constant optionally accepted by the <code>internalformat</code> * parameter of <code>glRenderbufferStorageOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_RGB8 = 0x8051; /** * Constant optionally accepted by the <code>internalformat</code> * parameter of <code>glRenderbufferStorageOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_DEPTH_COMPONENT24 = 0x81A6; /** * Constant optionally accepted by the <code>internalformat</code> * parameter of <code>glRenderbufferStorageOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_DEPTH_COMPONENT32 = 0x81A7; /** * Constant optionally accepted by the <code>internalformat</code> * parameter of <code>glRenderbufferStorageOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_STENCIL_INDEX1_OES = 0x8D46; /** * Constant optionally accepted by the <code>internalformat</code> * parameter of <code>glRenderbufferStorageOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_STENCIL_INDEX4_OES = 0x8D47; /** * Constant optionally accepted by the <code>internalformat</code> * parameter of <code>glRenderbufferStorageOES</code> * (<code>OES_framebuffer_object</code> extension). */ int GL_STENCIL_INDEX8_OES = 0x8D48; /* int GL_STENCIL_INDEX16_OES = 0x8D49; */ /** * Constant (<code>OES_framebuffer_object</code> extension). */ int GL_STENCIL_INDEX = 0x1901; /** * Constant (<code>OES_framebuffer_object</code> extension). */ int GL_DEPTH_COMPONENT = 0x1902; /** * (<code>OES_framebuffer_object</code> extension) Determine whether a * token represents a renderbuffer. * * <p> Returns <code>true</code> if <code>renderbuffer</code> is the * name of a renderbuffer object. If <code>renderbuffer</code> is * zero, or if <code>renderbuffer</code> is a non-zero value that is * not the name of a renderbuffer object, * <code>glIsRenderbufferOES</code> returns <code>false</code>. * * @param renderbuffer an integer. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. */ boolean glIsRenderbufferOES(int renderbuffer); /** * (<code>OES_framebuffer_object</code> extension) * Bind a renderbuffer. * * <p> A renderbuffer is a data storage object containing a single * image of a renderable internal format. GL provides the methods * described below to allocate and delete a renderbuffer's image, * and to attach a renderbuffer's image to a framebuffer object. * * <p> The name space for renderbuffer objects is the unsigned * integers, with zero reserved for the GL. A renderbuffer object * is created by binding an unused name to * <code>GL_RENDERBUFFER_OES</code>. The binding is effected by * setting <code>target</code> to <code>GL_RENDERBUFFER_OES</code> * and <code>renderbuffer</code> set to the unused name. If * <code>renderbuffer</code> is not zero, then the resulting * renderbuffer object is a new state vector, initialized with a * zero-sized memory buffer, and comprising the state values listed * in Table 8.nnn of the <code>EXT_framebuffer_object</code> * specification. Any previous binding to <code>target</code> is * broken. * * <p> <code>glBindRenderbufferOES</code> may also be used to bind an * existing renderbuffer object. If the bind is successful, no * change is made to the state of the newly bound renderbuffer * object, and any previous binding to <code>target</code> is * broken. * * <p> While a renderbuffer object is bound, GL operations on the target * to which it is bound affect the bound renderbuffer object, and * queries of the target to which a renderbuffer object is bound * return state from the bound object. * * <p> The name zero is reserved. A renderbuffer object cannot be * created with the name zero. If <code>renderbuffer</code> is * zero, then any previous binding to <code>target</code> is broken * and the <code>target</code> binding is restored to the initial * state. * * <p> In the initial state, the reserved name zero is bound to * <code>GL_RENDERBUFFER_OES</code>. There is no renderbuffer * object corresponding to the name zero, so client attempts to * modify or query renderbuffer state for the target * <code>GL_RENDERBUFFER_OES</code> while zero is bound will * generate GL errors. * * <p> Using <code>glGetIntegerv</code>, the current * <code>GL_RENDERBUFFER_OES</code> binding can be queried as * <code>GL_RENDERBUFFER_BINDING_OES</code>. * * @param target the value <code>GL_RENDERBUFFER_OES</code>. * @param renderbuffer Specifies the name of a renderbuffer. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. */ void glBindRenderbufferOES(int target, int renderbuffer); /** * (<code>OES_framebuffer_object</code> extension) * Delete a renderbuffer. * * <p> Renderbuffer objects are deleted by calling * glDeleteRenderbuffersOES where <code>renderbuffers</code> * contains <code>n</code> names of renderbuffer objects to be * deleted. After a renderbuffer object is deleted, it has no * contents, and its name is again unused. If a renderbuffer that * is currently bound to <code>GL_RENDERBUFFER_OES</code> is * deleted, it is as though <code>glBindRenderbufferOES</code> had * been executed with the <code>target</code> * <code>GL_RENDERBUFFER_OES</code> and <code>name</code> of zero. * Additionally, special care must be taken when deleting a * renderbuffer if the image of the renderbuffer is attached to a * framebuffer object. Unused names in * <code>renderbuffers</code> are silently ignored, as is the value * zero. * * @param n the number of renderbuffers to be deleted. * @param renderbuffers an array of <code>n</code> renderbuffer names. * @param offset the starting offset within the * <code>renderbuffers</code> array. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. * @exception IllegalArgumentException if <code>renderbuffers</code> is * <code>null</code>. * @exception IllegalArgumentException if <code>offset</code> is * less than 0. * @exception IllegalArgumentException if <code>renderbuffers.length * - offset</code> is less than <code>n</code>. */ void glDeleteRenderbuffersOES(int n, int[] renderbuffers, int offset); /** * (<code>OES_framebuffer_object</code> extension) * Integer <code>Buffer</code> version of * <code>glDeleteRenderbuffersOES</code>. * * @see #glDeleteRenderbuffersOES(int n, int[] renderbuffers, int offset) * * @param n the number of renderbuffers to be deleted. * @param renderbuffers an <code>IntBuffer</code> containing * renderbuffer names. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. * @exception IllegalArgumentException if <code>renderbuffers</code> is * <code>null</code>. * @exception IllegalArgumentException if * <code>renderbuffers.limit() - renderbuffers.position()</code> is * less than <code>n</code>. */ void glDeleteRenderbuffersOES(int n, IntBuffer renderbuffers); /** * (<code>OES_framebuffer_object</code> extension) * Generate renderbuffer names. * * <p> The command <code>glGenRenderbuffersOES</code> returns * <code>n</code> previously unused renderbuffer object names in * <code>renderbuffers</code>. These names are marked as used, for * the purposes of <code>glGenRenderbuffersOES</code> only, but they * acquire renderbuffer state only when they are first bound, just * as if they were unused. * * @param n the number of renderbuffer names to be generated. * @param renderbuffers an array to be filled in with <code>n</code> * renderbuffer names. * @param offset the starting offset within the * <code>renderbuffers</code> array. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. * @exception IllegalArgumentException if <code>renderbuffers</code> is * <code>null</code>. * @exception IllegalArgumentException if <code>offset</code> is * less than 0. * @exception IllegalArgumentException if <code>renderbuffers.length * - offset</code> is less than <code>n</code>. */ void glGenRenderbuffersOES(int n, int[] renderbuffers, int offset); /** * (<code>OES_framebuffer_object</code> extension) * Integer <code>Buffer</code> version of * <code>glGenRenderbuffersOES</code>. * * @see #glGenRenderbuffersOES(int n, int[] renderbuffers, int offset) * * @param n the number of renderbuffer names to be generated. * @param renderbuffers an <code>IntBuffer</code> to be filled in * with <code>n</code> renderbuffer names. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. * @exception IllegalArgumentException if <code>renderbuffers</code> is * <code>null</code>. * @exception IllegalArgumentException if * <code>renderbuffers.limit() - renderbuffers.position()</code> is * less than <code>n</code>. */ void glGenRenderbuffersOES(int n, IntBuffer renderbuffers); /** * (<code>OES_framebuffer_object</code> extension) * Establish the layout of a renderbuffer object's image. * * <p> The command <code>glRenderbufferStorageOES</code> establishes * the data storage, format, and dimensions of a renderbuffer * object's image. <code>target</code> must be * <code>GL_RENDERBUFFER_OES</code>. <code>internalformat</code> * must be one of the sized internal formats from the following * tables which has a base internal format of <code>GL_RGB</code>, * <code>GL_RGBA</code>, <code>GL_DEPTH_COMPONENT</code>, or * <code>GL_STENCIL_INDEX</code>. * * <p> The following formats are required: * * <pre> * Sized Base Size in * Internal Format Internal format Bits * --------------- --------------- ---- * RGB565_OES RGB 16 * RGBA4 RGBA 16 * RGB5_A1 RGBA 16 * DEPTH_COMPONENT_16 DEPTH_COMPONENT 16 * </pre> * * <p> The following formats are optional: * * <pre> * Sized Base Size in * Internal Format Internal format Bits * --------------- --------------- ---- * RGBA8 RGBA 32 * RGB8 RGB 24 * DEPTH_COMPONENT_24 DEPTH_COMPONENT 24 * DEPTH_COMPONENT_32 DEPTH_COMPONENT 32 * STENCIL_INDEX1_OES STENCIL_INDEX 1 * STENCIL_INDEX4_OES STENCIL_INDEX 4 * STENCIL_INDEX8_OES STENCIL_INDEX 8 * </pre> * * <p> The optional formats are described by the * <code>OES_rgb8_rgba8</code>, <code>OES_depth24</code>, * <code>OES_depth32</code>, <code>OES_stencil1</code>, * <code>OES_stencil4</code>, and <code>OES_stencil8</code> * extensions. * * <p> If <code>glRenderbufferStorageOES</code> is called with an * <code>internalformat</code> value that is not supported by the * OpenGL ES implementation, a <code>GL_INVALID_ENUM</code> error * will be generated. * * <p> <code>width</code> and * <code>height</code> are the dimensions in pixels of the * renderbuffer. If either <code>width</code> or * <code>height</code> is greater than * <code>GL_MAX_RENDERBUFFER_SIZE_OES</code>, then the error * <code>GL_INVALID_VALUE</code> is generated. If the GL is unable * to create a data store of the requested size, the error * <code>GL_OUT_OF_MEMORY</code> is * generated. <code>glRenderbufferStorageOES</code> deletes any * existing data store for the renderbuffer and the contents of the * data store after calling <code>glRenderbufferStorageOES</code> * are undefined. * * @param target the value <code>GL_RENDERBUFFER_OES</code>. * @param internalformat one of <code>GL_RGB</code>, * <code>GL_RGBA</code>, <code>GL_DEPTH_COMPONENT</code>, * <code>GL_STENCIL_INDEX</code>, or an internal format that has one * of those as a base format. * @param width the width of the image. * @param height the height of the image. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. */ void glRenderbufferStorageOES(int target, int internalformat, int width, int height); /** * (<code>OES_framebuffer_object</code> extension) * Query a renderbuffer parameter. * * <p> <code>target</code> must be <code>GL_RENDERBUFFER_OES</code>. * <code>pname</code> must be one of the symbolic values in the * table below. * * <p> If the renderbuffer currently bound to <code>target</code> is * zero, then <code>GL_INVALID_OPERATION</code> is generated. * * <p> Upon successful return from * <code>glGetRenderbufferParameterivOES</code>, if * <code>pname</code> is <code>GL_RENDERBUFFER_WIDTH_OES</code>, * <code>GL_RENDERBUFFER_HEIGHT_OES</code>, or * <code>GL_RENDERBUFFER_INTERNAL_FORMAT_OES</code>, then * <code>params</code> will contain the width in pixels, height in * pixels, or internal format, respectively, of the image of the * renderbuffer currently bound to <code>target</code>. * * <p> Upon successful return from * <code>glGetRenderbufferParameterivOES</code>, if * <code>pname</code> is <code>GL_RENDERBUFFER_RED_SIZE_OES</code>, * <code>GL_RENDERBUFFER_GREEN_SIZE_OES</code>, * <code>GL_RENDERBUFFER_BLUE_SIZE_OES</code>, * <code>GL_RENDERBUFFER_ALPHA_SIZE_OES</code>, * <code>GK_RENDERBUFFER_DEPTH_SIZE_OES</code>, or * <code>GL_RENDERBUFFER_STENCIL_SIZE_OES</code>, then * <code>params</code> will contain the actual resolutions, (not the * resolutions specified when the image array was defined), for the * red, green, blue, alpha depth, or stencil components, * respectively, of the image of the renderbuffer currently bound to * <code>target</code>. * * <p> Otherwise, <code>GL_INVALID_ENUM</code> is generated. * * <p> The values in the first column of the table below should be * prefixed with <code>GL_RENDERBUFFER_</code> and suffixed with * <code>OES</code>. The get command for all values is * <code>glGetRenderbufferParameterivOES</code>. All take on * positive integral values. * * <pre> * Get Initial * Value Value Description * --------------- ------- ---------------------- * WIDTH 0 width of renderbuffer * * HEIGHT 0 height of renderbuffer * * INTERNAL_FORMAT GL_RGBA internal format * of renderbuffer * * RED_SIZE 0 size in bits of * renderbuffer image's * red component * * GREEN_SIZE 0 size in bits of * renderbuffer image's * green component * * BLUE_SIZE 0 size in bits of * renderbuffer image's * blue component * * ALPHA_SIZE 0 size in bits of * renderbuffer image's * alpha component * * DEPTH_SIZE 0 size in bits of * renderbuffer image's * depth component * * STENCIL_SIZE 0 size in bits of * renderbuffer image's * stencil component * </pre> * * @param target the value <code>GL_RENDERBUFFER_OES</code>. * @param pname one of <code>GL_RENDERBUFFER_WIDTH_OES</code>, * <code>GL_RENDERBUFFER_HEIGHT_OES</code>, * <code>GL_RENDERBUFFER_INTERNAL_FORMAT_OES</code>, * <code>GL_RENDERBUFFER_RED_SIZE_OES</code>, * <code>GL_RENDERBUFFER_GREEN_SIZE_OES</code>, * <code>GL_RENDERBUFFER_BLUE_SIZE_OES</code>, * <code>GL_RENDERBUFFER_ALPHA_SIZE_OES</code>, * <code>GL_RENDERBUFFER_DEPTH_SIZE_OES</code>, or * <code>GL_RENDERBUFFER_STENCIL_SIZE_OES</code>. * @param params an array into which renderbuffer parameters will be * written. * @param offset the starting offset within the * <code>params</code> array. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. * @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 glGetRenderbufferParameterivOES(int target, int pname, int[] params, int offset); /** * (<code>OES_framebuffer_object</code> extension) * Integer <code>Buffer</code> version of * <code>glGetRenderbufferParameterivOES</code>. * * @see #glGetRenderbufferParameterivOES(int target, int pname, * int[] params, int offset) * * @param target the value <code>GL_RENDERBUFFER_OES</code>. * @param pname one of <code>GL_RENDERBUFFER_WIDTH_OES</code>, * <code>GL_RENDERBUFFER_HEIGHT_OES</code>, * <code>GL_RENDERBUFFER_INTERNAL_FORMAT_OES</code>, * <code>GL_RENDERBUFFER_RED_SIZE_OES</code>, * <code>GL_RENDERBUFFER_GREEN_SIZE_OES</code>, * <code>GL_RENDERBUFFER_BLUE_SIZE_OES</code>, * <code>GL_RENDERBUFFER_ALPHA_SIZE_OES</code>, * <code>GL_RENDERBUFFER_DEPTH_SIZE_OES</code>, or * <code>GL_RENDERBUFFER_STENCIL_SIZE_OES</code>. * @param params an <code>IntBuffer</code> into which renderbuffer * parameters will be written. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. * @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 glGetRenderbufferParameterivOES(int target, int pname, IntBuffer params); /** * (<code>OES_framebuffer_object</code> extension) Determine whether a * token represents a framebuffer. * * <p> Returns <code>true</code> if <code>framebuffer</code> is the * name of a framebuffer object. If <code>framebuffer</code> is * zero, or if <code>framebuffer</code> is a non-zero value that is * not the name of a framebuffer object, * <code>glIsFrambufferOES</code> returns <code>false</code>. * * @param framebuffer an integer. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. */ boolean glIsFramebufferOES(int framebuffer); /** * (<code>OES_framebuffer_object</code> extension) * Bind a framebuffer. * <p> The operations described in chapter 4 of the OpenGL 1.5 * specification affect the images attached to the framebuffer * object bound to the target GL_FRAMEBUFFER_OES. By default, * framebuffer bound to the target GL_FRAMEBUFFER_OES is zero, * specifying the default implementation dependent framebuffer * provided by the windowing system. When the framebuffer bound to * target GL_FRAMEBUFFER_OES is not zero, but instead names a * application-created framebuffer object, then operations * affect the application-created framebuffer object * rather than the default framebuffer. * * <p> The namespace for framebuffer objects is the unsigned * integers, with zero reserved by the GL to refer to the default * framebuffer. A framebuffer object is created by binding an * unused name to the target <code>GL_FRAMEBUFFER_OES</code>. The * binding is effected by calling <code>glBindFramebufferOES</code> * with <code>target</code> set to <code>GL_FRAMEBUFFER_OES</code> * and <code>framebuffer</code> set to the unused name. The * resulting framebuffer object is a new state vector, comprising * all the state values listed in the table below. There are * <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> color attachment * points, plus one each for the depth and stencil attachment * points. * * <code>glBindFramebufferOES</code> may also be used to bind an * existing framebuffer object to <code>target</code>. If the bind * is successful no change is made to the state of the bound * framebuffer object and any previous binding to * <code>target</code> is broken. The current * <code>GL_FRAMEBUFFER_OES</code> binding can be queried using * <code>glGetIntegerv(GL_FRAMEBUFFER_BINDING_OES)</code>. * * <p> While a framebuffer object is bound to the target * <code>GL_FRAMEBUFFER_OES</code>, GL operations on the target to * which it is bound affect the images attached to the bound * framebuffer object, and queries of the target to which it is * bound return state from the bound object. The framebuffer object * bound to the target <code>GL_FRAMEBUFFER_OES</code> is used as * the destination of fragment operations and as the source of pixel * reads such as <code>glReadPixels</code>. * * In the initial state, the reserved name zero is bound to the * target <code>GL_FRAMEBUFFER_OES</code>. There is no * application-created framebuffer object corresponding to the name * zero. Instead, the name zero refers to the * window-system-provided framebuffer. All queries and operations * on the framebuffer while the name zero is bound to the target * <code>GL_FRAMEBUFFER_OES</code> operate on this default * framebuffer. On some implementations, the properties of the * default window-system-provided framebuffer can change over time * (e.g., in response to window-system events such as attaching the * context to a new window-system drawable.) * * <p> Application-created framebuffer objects (i.e., those with a * non-zero name) differ from the default window-system-provided * framebuffer in a few important ways. First and foremost, unlike * the window-system-provided framebuffer, * application-created-framebuffers have modifiable attachment * points for each logical buffer in the framebuffer. * Framebuffer-attachable images can be attached to and detached * from these attachment points. Also, the size and format of the * images attached to application-created framebuffers are * controlled entirely within the GL interface, and are not affected * by window-system events, such as pixel format selection, window * resizes, and display mode changes. * * <p> Additionally, when rendering to or reading from an * application created-framebuffer object: * * <ul> * * <li>The pixel ownership test always succeeds. In other words, * application-created framebuffer objects own all of their * pixels.</li> * * <li>There are no visible color buffer bitplanes. This means * there is no color buffer corresponding to the back, front, left, * or right color bitplanes.</li> * * <li>The only color buffer bitplanes are the ones defined by the * framebuffer attachment points named * <code>COLOR_ATTACHMENT0_OES</code> through * <code>COLOR_ATTACHMENT</code><i>n</i><code>_OES</code>.</li> * * <li>The only depth buffer bitplanes are the ones defined by the * framebuffer attachment point * <code>DEPTH_ATTACHMENT_OES</code>.</li> * * <li>The only stencil buffer bitplanes are the ones defined by the * framebuffer attachment point * <code>STENCIL_ATTACHMENT_OES</code>.</li> * * </ul> * * @param target the value <code>GL_FRAMEBUFFER_OES</code>. * @param framebuffer the framebuffer to be bound. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. */ void glBindFramebufferOES(int target, int framebuffer); /** * (<code>OES_framebuffer_object</code> extension) * Delete framebuffer objects. * * <p> Framebuffer objects are deleted by calling * <code>glDeleteFramebuffersOES</code>. <code>framebuffers</code> * contains <code>n</code> names of framebuffer objects to be * deleted. After a framebuffer object is deleted, it has no * attachments, and its name is again unused. If a framebuffer that * is currently bound to the target <code>GL_FRAMEBUFFER_OES</code> * is deleted, it is as though <code>glBindFramebufferOES</code> had * been executed with the <code>target</code> of * <code>GL_FRAMEBUFFER_OES</code> and <code>framebuffer</code> of * zero. Unused names in <code>framebuffers</code> are silently * ignored, as is the value zero. * * @param n the number of framebuffers to be deleted. * @param framebuffers a list of framebuffers. * @param offset the starting offset within the * <code>framebuffers</code> array. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. * @exception IllegalArgumentException if <code>framebuffers</code> is * <code>null</code>. * @exception IllegalArgumentException if <code>offset</code> is * less than 0. * @exception IllegalArgumentException if <code>framebuffers.length * - offset</code> is less than <code>n</code>. */ void glDeleteFramebuffersOES(int n, int[] framebuffers, int offset); /** * (<code>OES_framebuffer_object</code> extension) * Integer <code>Buffer</code> version of * <code>glDeleteFramebuffersOES</code>. * * @see #glDeleteFramebuffersOES(int n, int[] framebuffers, int offset) * * @param n * @param framebuffers * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. * @exception IllegalArgumentException if <code>framebuffers</code> is * <code>null</code>. * @exception IllegalArgumentException if <code>framebuffers.limit() * - framebuffers.position()</code> is less than <code>n</code>. */ void glDeleteFramebuffersOES(int n, IntBuffer framebuffers); /** * (<code>OES_framebuffer_object</code> extension) * Generate framebuffer names. * * <p> The command <code>glGenFramebuffersOES</code> returns * <code>n</code> previously unused framebuffer object names in * <code>ids</code>. These names are marked as used, for the * purposes of <code>glGenFramebuffersOES</code> only, but they * acquire state and type only when they are first bound, just as if * they were unused. * * @param n the number of framebuffer names to be generated. * @param framebuffers an array to be filled in with <code>n</code> * framebuffer names. * @param offset the starting offset within the * <code>framebuffers</code> array. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. * @exception IllegalArgumentException if <code>framebuffers</code> is * <code>null</code>. * @exception IllegalArgumentException if <code>offset</code> is * less than 0. * @exception IllegalArgumentException if <code>framebuffers.length * - offset</code> is less than <code>n</code>. */ void glGenFramebuffersOES(int n, int[] framebuffers, int offset); /** * (<code>OES_framebuffer_object</code> extension) * Integer <code>Buffer</code> version of * <code>glGenFramebuffersOES</code>. * * @see #glGenFramebuffersOES(int n, int[] framebuffers, int offset) * * @param n the number of framebuffer names to be generated. * @param framebuffers an <code>IntBuffer</code> to be filled in * with <code>n</code> framebuffer names. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. * @exception IllegalArgumentException if <code>framebuffers</code> is * <code>null</code>. * @exception IllegalArgumentException if <code>framebuffers.limit() * - framebuffers.position()</code> is less than <code>n</code>. */ void glGenFramebuffersOES(int n, IntBuffer framebuffers); /** * (<code>OES_framebuffer_object</code> extension) * Check the status of a framebuffer. * * <p> Returns one of <code>GL_FRAMEBUFFER_COMPLETE_OES</code>, * <code>GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES</code>, * <code>GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES</code>, * <code>GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES</code>, * <code>GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES</code>, * <code>GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES</code>, or * <code>GL_FRAMEBUFFER_UNSUPPORTED_OES</code>. * * @param target a framebuffer. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. */ int glCheckFramebufferStatusOES(int target); /** * (<code>OES_framebuffer_object</code> extension) * Attach an image from a texture object to a framebuffer. * * <p> To render directly into a texture image, a specified image from a * texture object can be attached as one of the logical buffers of the * currently bound framebuffer object by calling this method. * * <p> GL_INVALID_OPERATION is generated if the current value of * <code>GL_FRAMEBUFFER_BINDING_OES</code> is zero when * <code>glFramebufferTexture2DOES</code> is called. * <code>attachment</code> must be one of the attachment points of * the framebuffer, either * <code>GL_COLOR_ATTACHMENT</code><i>n</i><code>_OES</code> (where * <i>n</i> is from 0 to <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> - * 1), <code>GL_DEPTH_ATTACHMENT_OES</code>, or * <code>GL_STENCIL_ATTACHMENT_OES</code>. * * <p> If <code>texture</code> is zero, then <code>textarget</code> * and <code>level</code> are ignored. If <code>texture</code> is * not zero, then <code>texture</code> must either name an existing * texture object with an target of <code>textarget</code>, or * <code>texture</code> must name an existing cube map texture and * <code>textarget</code> must be one of: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>, * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>, * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>, * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>, * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>, or * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>. Otherwise, * <code>GL_INVALID_OPERATION</code> is generated. * * <p> <code>level</code> specifies the mipmap level of the texture * image to be attached to the framebuffer and must be 0 (indicating * the base MIPmap level). * * <p> If <code>textarget</code> is one of * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>, * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>, * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>, * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>, * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>, or * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>, then * <code>level</code> must be greater than or equal to zero and less * than or equal to log base 2 of * <code>GL_MAX_CUBE_MAP_TEXTURE_SIZE</code>. For all other values of * <code>textarget</code>, <code>level</code> must be greater than or * equal to zero and no larger than log base 2 of * <code>GL_MAX_TEXTURE_SIZE</code>. Otherwise, * <code>GL_INVALID_VALUE</code> is generated. * * <p> If <code>texture</code> is not zero, then * <code>textarget</code> must be one of: * <code>GL_TEXTURE_2D</code>, * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>, * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>, * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>, * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>, * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>, or * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>. * * <p> If <code>texture</code> is not zero, and if * <code>glFramebufferTexture2DOES</code> is successful, then the * specified texture image will be used as the logical buffer * identified by <code>attachment</code> of the framebuffer currently * bound to <code>target</code>. The value of * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES</code> for the * specified attachment point is set to <code>GL_TEXTURE</code> and * the value of * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code> is set to * <texture>. Additionally, the value of * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES</code> for the * named attachment point is set to <code>level</code>. If * <code>texture</code> is a cubemap texture then, the value of * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES</code> * the named attachment point is set to <code>textarget</code>. All * other state values of the attachment point specified by * <code>attachment</code> are set to their default values listed in * the table below. No change is made to the state of the texture * object, and any previous attachment to the <code>attachment</code> * logical buffer of the framebuffer object bound to framebuffer * <code>target</code> is broken. If, on the other hand, the * attachment is not successful, then no change is made to the state * of either the texture object or the framebuffer object. * * <p> Calling <code>glFramebufferTexture2DOES</code> with * <code>texture</code> name zero will detach the image identified by * <code>attachment</code>, if any, in the framebuffer currently * bound to <code>target</code>. All state values of the attachment * point specified by <code>attachment</code> are set to their * default values listed in the table below. * * <p> If a texture object is deleted while its image is attached to * one or more attachment points in the currently bound framebuffer, * then it is as if <code>glFramebufferTexture2DOES</code> had been * called, with a <code>texture</code> of 0, for each attachment * point to which this image was attached in the currently bound * framebuffer. In other words, this texture image is first detached * from all attachment points in the currently bound framebuffer. * Note that the texture image is specifically <b>not</b> detached from * any other framebuffer objects. Detaching the texture image from * any other framebuffer objects is the responsibility of the * application. * * <p> The entire texture image, including border texels, if any, can be * addressed with window-coordinates in the following range: * * <pre> * 0 <= window_x < (texture_width + (2 * border)), * </pre> * and * <pre> * 0 <= window_y < (texture_height + (2 * border)) * </pre> * * <p> The values in the first column of the table below should be * prefixed with <code>GL_RENDERBUFFER_</code> and suffixed with * <code>OES</code>. The get command for all values is * <code>glGetRenderbufferParameterivOES</code>. All take on * positive integral values. * * <pre> * Get Initial * Value Value Description * --------------- ------- ---------------------- * ATTACHMENT_OBJECT_TYPE GL_NONE type of * image attached to * framebuffer attachment * point * * ATTACHMENT_OBJECT_NAME 0 name of object * attached to * framebuffer attachment * point * * ATTACHMENT_TEXTURE_LEVEL 0 mipmap level of * texture image * attached, if object * attached is texture. * * ATTACHMENT_TEXTURE_ GL_TEXTURE_ cubemap face of * CUBE_MAP_FACE CUBE_MAP_ texture image * POSITIVE_X attached, if object * attached is cubemap * texture. * </pre> * * @param target the value <code>GL_FRAMEBUFFER_OES</code>. * @param attachment the framebuffer attachment, one of * <code>GL_COLOR_ATTACHMENT_</code><i>n</i><code>_OES</code> (where * <i>n</i> is from 0 to <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> - * 1), <code>GL_DEPTH_ATTACHMENT_OES</code>, or * <code>GL_STENCIL_ATTACHMENT_OES</code>. * @param textarget one of <code>GL_TEXTURE_2D</code>, * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>, * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>, * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>, * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>, * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>, or * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>. * @param texture the texture, or zero. * @param level the texture MIPmap level, which must be 0. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. */ void glFramebufferTexture2DOES(int target, int attachment, int textarget, int texture, int level); /** * (<code>OES_framebuffer_object</code> extension) * Attach a renderbuffer to a framebuffer. * * <p> A renderbuffer can be attached as one of the logical buffers * of the currently bound framebuffer object by calling * <code>glFramebufferRenderbufferOES</code>. <code>target</code> * must be <code>GL_FRAMEBUFFER_OES</code>. * <code>GL_INVALID_OPERATION</code> is generated if the current * value of <code>GL_FRAMEBUFFER_BINDING_OES</code> is zero when * <code>glFramebufferRenderbufferOES</code> is called. * <code>attachment</code> should be set to one of the attachment * points of the framebuffer, one of * <code>GL_COLOR_ATTACHMENT</code><i>n</i><code>_OES</code> (where * <i>n</i> is from 0 to <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> - * 1), <code>GL_DEPTH_ATTACHMENT_OES</code>, or * <code>GL_STENCIL_ATTACHMENT_OES</code>. * <code>renderbuffertarget</code> must be * <code>GL_RENDERBUFFER_OES</code> and <code>renderbuffer</code> * should be set to the name of the renderbuffer object to be * attached to the framebuffer. <code>renderbuffer</code> must be * either zero or the name of an existing renderbuffer object of * type <code>renderbuffertarget</code>, otherwise * <code>GL_INVALID_OPERATION</code> is generated. If * <code>renderbuffer</code> is zero, then the value of * <code>renderbuffertarget</code> is ignored. * * <p> If <code>renderbuffer</code> is not zero and if * <code>glFramebufferRenderbufferOES</code> is successful, then the * renderbuffer named <code>renderbuffer</code> will be used as the * logical buffer identified by <code>attachment</code> of the * framebuffer currently bound to <code>target</code>. The value of * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES</code> for the * specified attachment point is set to * <code>GL_RENDERBUFFER_OES</code> and the value of * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code> is set to * <code>renderbuffer</code>. All other state values of the * attachment point specified by <code>attachment</code> are set to * their default values listed in the table below. No change is made * to the state of the renderbuffer object and any previous * attachment to the <code>attachment</code> logical buffer of the * framebuffer object bound to framebuffer <code>target</code> is * broken. If, on the other hand, the attachment is not successful, * then no change is made to the state of either the renderbuffer * object or the framebuffer object. * * <p> Calling <code>glFramebufferRenderbufferOES</code> with the * <code>renderbuffer</code> name zero will detach the image, if * any, identified by <code>attachment</code>, in the framebuffer * currently bound to <code>target</code>. All state values of the * attachment point specified by <code>attachment</code> in the * object bound to <code>target</code> are set to their default * values listed in the table below. * * <p> If a renderbuffer object is deleted while its image is * attached to one or more attachment points in the currently bound * framebuffer, then it is as if * <code>glFramebufferRenderbufferOES</code> had been called, with a * <code>renderbuffer</code> of 0, for each attachment point to * which this image was attached in the currently bound framebuffer. * In other words, this renderbuffer image is first detached from * all attachment points in the currently bound framebuffer. Note * that the renderbuffer image is specifically *not* detached from * any non-bound framebuffers. Detaching the image from any * non-bound framebuffers is the responsibility of the application. * * <p> The values in the first column of the table below should be * prefixed with <code>GL_RENDERBUFFER_</code> and suffixed with * <code>OES</code>. The get command for all values is * <code>glGetRenderbufferParameterivOES</code>. All take on * positive integral values. * * <pre> * Get Initial * Value Value Description * --------------- ------- ---------------------- * ATTACHMENT_OBJECT_TYPE GL_NONE type of * image attached to * framebuffer attachment * point * * ATTACHMENT_OBJECT_NAME 0 name of object * attached to * framebuffer attachment * point * * ATTACHMENT_TEXTURE_LEVEL 0 mipmap level of * texture image * attached, if object * attached is texture. * * ATTACHMENT_TEXTURE_ GL_TEXTURE_ cubemap face of * CUBE_MAP_FACE CUBE_MAP_ texture image * POSITIVE_X attached, if object * attached is cubemap * texture. * </pre> * * @param target the value <code>GL_FRAMEBUFFER_OES</code>. * @param attachment one of * <code>GL_COLOR_ATTACHMENT</code><i>n</i><code>_OES</code> (where * <i>n</i> is from 0 to <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> - * 1), <code>GL_DEPTH_ATTACHMENT_OES</code>, or * <code>GL_STENCIL_ATTACHMENT_OES</code>. * @param renderbuffertarget the value * <code>GL_RENDERBUFFER_OES</code>. * @param renderbuffer the renderbuffer to be attached to the framebuffer. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. */ void glFramebufferRenderbufferOES(int target, int attachment, int renderbuffertarget, int renderbuffer); /** * (<code>OES_framebuffer_object</code> extension) * Query the value of a framebuffer attachment parameter. * * <p> <code>target</code> must be <code>GL_FRAMEBUFFER_OES</code>. * <code>attachment</code> must be one of the attachment points of * the framebuffer, either <code>GL_COLOR_ATTACHMENT</code><i>n</i><code>_OES</code> (where * <i>n</i> is from 0 to <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> - * 1), <code>GL_DEPTH_ATTACHMENT_OES</code>, or * <code>GL_STENCIL_ATTACHMENT_OES</code>. * <code>pname</code> must be one of the following: * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES</code>, * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code>, * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES</code>, or * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES</code>. * * <p> If the framebuffer currently bound to <code>target</code> is * zero, then <code>GL_INVALID_OPERATION</code> is generated. * * <p> Upon successful return from * <code>glGetFramebufferAttachmentParameterivOES</code>, if * <code>pname</code> is * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES</code>, then * <code>param</code> will contain one of <code>GL_NONE</code>, * <code>GL_TEXTURE</code>, or <code>GL_RENDERBUFFER_OES</code>, * identifying the type of object which contains the attached image. * * <p> If the value of GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES is * <code>GL_RENDERBUFFER_OES</code>, then: * * <ul> <li>If <code>pname</code> is * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code>, * <code>params</code> will contain the name of the renderbuffer * object which contains the attached image.</li> * * <li>Otherwise, <code>GL_INVALID_ENUM</code> is generated.</li> * </ul> * * <p> If the value of * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES</code> is * <code>GL_TEXTURE</code>, then: * * <ul> * * <li>If <pname> is * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code>, then * <params> will contain the name of the texture object which * contains the attached image.</li> * * <li>If <pname> is * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES</code>, then * <params> will contain the mipmap level of the texture object * which contains the attached image.</li> * * <li>If <pname> is * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES</code> * and the texture object named * <code>FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code> is a cube map * texture, then <params> will contain the cube map face of the * cubemap texture object which contains the attached image. * Otherwise <params> will contain the value zero.</li> * * <li>Otherwise, <code>GL_INVALID_ENUM</code> is generated.</li> * * </ul> * * @param target the value <code>GL_FRAMEBUFFER_OES</code>. * @param attachment one of * <code>GL_COLOR_ATTACHMENT</code><i>n</i><code>_OES</code> (where * <i>n</i> is from 0 to <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> - * 1), <code>GL_DEPTH_ATTACHMENT_OES</code>, or * <code>GL_STENCIL_ATTACHMENT_OES</code>. * @param pname one of * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES</code>, * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code>, * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES</code>, or * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES</code>. * @param params an array to which the query results will be written. * @param offset the starting offset within the * <code>params</code> array. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. * @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 glGetFramebufferAttachmentParameterivOES(int target, int attachment, int pname, int[] params, int offset); /** * (<code>OES_framebuffer_object</code> extension) * Integer <code>Buffer</code> version of * <code>glGetFramebufferAttachmentParameterivOES</code>. * * @see #glGetFramebufferAttachmentParameterivOES(int target, int * attachment, int pname, int[] params, int offset) * * @param target the value <code>GL_FRAMEBUFFER_OES</code>. * @param attachment one of * <code>GL_COLOR_ATTACHMENT</code><i>n</i><code>_OES</code> (where * <i>n</i> is from 0 to <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> - * 1), <code>GL_DEPTH_ATTACHMENT_OES</code>, or * <code>GL_STENCIL_ATTACHMENT_OES</code>. * @param pname one of * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES</code>, * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code>, * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES</code>, or * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES</code>. * @param params an <code>IntBuffer</code> to which the query * results will be written. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. * @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 glGetFramebufferAttachmentParameterivOES(int target, int attachment, int pname, IntBuffer params); /** * (<code>OES_framebuffer_object</code> extension) Generate mipmaps * manually. * * <p> <code>target</code> is one of <code>TEXTURE_2D</code> or * <code>TEXTURE_CUBE_MAP</code>. Mipmap generation affects the * texture image attached to <code>target</code>. For cube map * textures, <code>INVALID_OPERATION</code> is generated if the * texture bound to <code>target</code> is not cube complete. * * @param target one of <code>TEXTURE_2D</code> or * <code>TEXTURE_CUBE_MAP</code>. * * @exception UnsupportedOperationException if the underlying * runtime engine does not support the * <code>OES_framebuffer_object</code> extension. */ void glGenerateMipmapOES(int target); }