0001: /*
0002: * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved.
0003: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
0004: *
0005: * This program is free software; you can redistribute it and/or
0006: * modify it under the terms of the GNU General Public License version
0007: * 2 only, as published by the Free Software Foundation.
0008: *
0009: * This program is distributed in the hope that it will be useful, but
0010: * WITHOUT ANY WARRANTY; without even the implied warranty of
0011: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0012: * General Public License version 2 for more details (a copy is
0013: * included at /legal/license.txt).
0014: *
0015: * You should have received a copy of the GNU General Public License
0016: * version 2 along with this work; if not, write to the Free Software
0017: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
0018: * 02110-1301 USA
0019: *
0020: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
0021: * Clara, CA 95054 or visit www.sun.com if you need additional
0022: * information or have any questions.
0023: */
0024:
0025: package javax.microedition.khronos.opengles;
0026:
0027: import java.nio.*;
0028:
0029: /**
0030: * The <code>GL11ExtensionPack</code> interface contains the Java(TM)
0031: * programming language bindings for the OpenGL ES 1.1 Extension Pack.
0032: * The runtime OpenGL ES engine may or may not implement any
0033: * particular extensions defined in the extension pack. Functions
0034: * that require a particular extension will throw an
0035: * <code>UnsupportedOperationException</code> if the extension is not
0036: * available at runtime.
0037: *
0038: * <p> The OpenGL ES 1.1 Extension Pack consists of the following extensions:
0039: *
0040: * <ul>
0041: * <li>OES_texture_env_crossbar</li>
0042: * <li>OES_texture_mirrored_repeat</li>
0043: * <li>OES_texture_cube_map</li>
0044: * <li>OES_blend_subtract</li>
0045: * <li>OES_blend_func_separate</li>
0046: * <li>OES_blend_equation_separate</li>
0047: * <li>OES_stencil_wrap</li>
0048: * <li>OES_extended_matrix_palette</li>
0049: * <li>OES_framebuffer_object</li>
0050: * </ul>
0051: *
0052: * <p> The specification for the OpenGL ES 1.1 Extension Pack may be
0053: * found at <a
0054: * 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>.
0055: *
0056: * <p> The documentation in this class is normative with respect to
0057: * instance variable names and values, method names and signatures,
0058: * and exception behavior. The remaining documentation is placed here
0059: * for convenience and does not replace the normative documentation
0060: * found in the OpenGL ES 1.1 Extension Pack specification, OpenGL ES
0061: * specification, relevant extension specifications, and the OpenGL
0062: * specification versions referenced by any of the preceding
0063: * specifications.
0064: */
0065: public interface GL11ExtensionPack extends GL {
0066:
0067: // /**
0068: // * Flag indicating the presence of the "texture env crossbar"
0069: // * extension. <code>OES_texture_env_crossbar</code> is an optional
0070: // * profile extension in OpenGL ES 1.1, and is part of the OpenGL ES
0071: // * 1.1 Extension Pack.
0072: // *
0073: // * <p> The value of this flag does not imply the presence of the
0074: // * extension in the runtime enviroment.
0075: // */
0076: // int GL_OES_texture_env_crossbar = 1;
0077:
0078: /**
0079: * (<code>OES_texture_env_crossbar</code> extension)
0080: * Set texture environment parameters.
0081: *
0082: * <p> The <code>OES_texture_env_crossbar</code> extension adds the
0083: * capability to use the texture color from other texture units as
0084: * sources to the <code>COMBINE</code> texture function. OpenGL ES
0085: * 1.1 defined texture combine functions which could use the color
0086: * from the current texture unit as a source. This extension adds
0087: * the ability to use the color from any texture unit as a source.
0088: *
0089: * <p> The tables that define arguments for <code>COMBINE_RGB</code>
0090: * and <code>COMBINE_ALPHA</code> functions are extended to include
0091: * <code>TEXTURE</code><i>n</i>:
0092: *
0093: * <pre>
0094: * SRCn_RGB OPERANDn_RGB Argument
0095: *
0096: * TEXTURE SRC_COLOR Cs
0097: * ONE_MINUS_SRC_COLOR 1 - Cs
0098: * SRC_ALPHA As
0099: * ONE_MINUS_SRC_ALPHA 1 - As
0100: *
0101: * TEXTUREn SRC_COLOR Cs^n
0102: * ONE_MINUS_SRC_COLOR 1 - Cs^n
0103: * SRC_ALPHA As^n
0104: * ONE_MINUS_SRC_ALPHA 1 - As^n
0105: *
0106: * CONSTANT SRC_COLOR Cc
0107: * ONE_MINUS_SRC_COLOR 1 - Cc
0108: * SRC_ALPHA Ac
0109: * ONE_MINUS_SRC_ALPHA 1 - Ac
0110: *
0111: * PRIMARY_COLOR SRC_COLOR Cf
0112: * ONE_MINUS_SRC_COLOR 1 - Cf
0113: * SRC_ALPHA Af
0114: * ONE_MINUS_SRC_ALPHA 1 - Af
0115: *
0116: * PREVIOUS SRC_COLOR Cp
0117: * ONE_MINUS_SRC_COLOR 1 - Cp
0118: * SRC_ALPHA Ap
0119: * ONE_MINUS_SRC_ALPHA 1 - Ap
0120: * </pre>
0121: *
0122: * @param param additionally accept <code>TEXTURE</code><i>n</i>,
0123: * where <i>n</i> is a number between 0 and 31, inclusive.
0124: *
0125: * @see GL11#glTexEnvf(int target, int pname, float param)
0126: */
0127: void glTexEnvf(int target, int pname, float param);
0128:
0129: /**
0130: * (<code>OES_texture_env_crossbar</code> extension)
0131: * Floating-point array version of <code>glTexEnv</code>.
0132: *
0133: * @see #glTexEnvf(int target, int pname, float param)
0134: *
0135: * @exception IllegalArgumentException if <code>params</code> is
0136: * <code>null</code>.
0137: * @exception IllegalArgumentException if <code>offset</code> is
0138: * less than 0.
0139: * @exception IllegalArgumentException if <code>params.length -
0140: * offset</code> is smaller than the number of values required by
0141: * the parameter.
0142: */
0143: void glTexEnvfv(int target, int pname, float[] params, int offset);
0144:
0145: /**
0146: * (<code>OES_texture_env_crossbar</code> extension)
0147: * Floating-point <code>Buffer</code> version of
0148: * <code>glTexEnv</code>.
0149: *
0150: * @see #glTexEnvf(int target, int pname, float param)
0151: *
0152: * @exception IllegalArgumentException if <code>params</code> is
0153: * <code>null</code>.
0154: * @exception IllegalArgumentException if
0155: * <code>params.remaining()</code> is smaller than the number of
0156: * values required by the parameter.
0157: */
0158: void glTexEnvfv(int target, int pname, FloatBuffer params);
0159:
0160: /**
0161: * (<code>OES_texture_env_crossbar</code> extension)
0162: * Integer version of <code>glTexEnv</code>.
0163: *
0164: * @see #glTexEnvf(int target, int pname, float param)
0165: */
0166: void glTexEnvx(int target, int pname, int param);
0167:
0168: /**
0169: * (<code>OES_texture_env_crossbar</code> extension)
0170: * Fixed-point array version of <code>glTexEnv</code>.
0171: *
0172: * @see #glTexEnvf(int target, int pname, float param)
0173: *
0174: * @exception IllegalArgumentException if <code>params</code> is
0175: * <code>null</code>.
0176: * @exception IllegalArgumentException if <code>offset</code> is
0177: * less than 0.
0178: * @exception IllegalArgumentException if <code>params.length -
0179: * offset</code> is smaller than the number of values required by
0180: * the parameter.
0181: */
0182: void glTexEnvxv(int target, int pname, int[] params, int offset);
0183:
0184: /**
0185: * (<code>OES_texture_env_crossbar</code> extension)
0186: * Fixed-point <code>Buffer</code> version of <code>glTexEnv</code>.
0187: *
0188: * @see #glTexEnvf(int target, int pname, float param)
0189: *
0190: * @exception IllegalArgumentException if <code>params</code> is
0191: * <code>null</code>.
0192: * @exception IllegalArgumentException if
0193: * <code>params.remaining()</code> is smaller than the number of
0194: * values required by the parameter.
0195: */
0196: void glTexEnvxv(int target, int pname, IntBuffer params);
0197:
0198: // /**
0199: // * Flag indicating the presence of the "texture mirrored repeat"
0200: // * extension. <code>OES_texture_mirrored_repeat</code> is an optional
0201: // * profile extension in OpenGL ES 1.1, and is part of the OpenGL ES
0202: // * 1.1 Extension Pack.
0203: // *
0204: // * <p> The value of this flag does not imply the presence of the
0205: // * extension in the runtime enviroment.
0206: // */
0207: // int GL_OES_texture_mirrored_repeat = 1;
0208:
0209: /**
0210: * Constant for use with <code>glTexParameter</code> and
0211: * <code>glGetTexParameter</code>
0212: * (<code>OES_texture_mirrored_repeat</code> extension).
0213: */
0214: int GL_MIRRORED_REPEAT = 0x8370;
0215:
0216: /**
0217: * (<code>OES_texture_mirrored_repeat</code> extension)
0218: * Set texture parameters.
0219: *
0220: * <p> An additional option is accepted for
0221: * <code>GL_TEXTURE_WRAP_S</code> and
0222: * <code>GL_TEXTURE_WRAP_T</code></li> parameters.
0223: * <code>GL_MIRRORED_REPEAT</code> effectively uses a texture map
0224: * twice as large as the original image im which the additional
0225: * half, for each coordinate, of the new image is a mirror image of
0226: * the original image.
0227: *
0228: * @see GL11#glTexParameterf(int target, int pname, float param)
0229: */
0230: void glTexParameterf(int target, int pname, float param);
0231:
0232: // /**
0233: // * Flag indicating the presence of the "texture cube map" extension.
0234: // * <code>OES_texture_cube_map</code> is an optional profile
0235: // * extension in OpenGL ES 1.1, and is part of the OpenGL ES 1.1
0236: // * Extension Pack.
0237: // *
0238: // * <p> The value of this flag does not imply the presence of the
0239: // * extension in the runtime enviroment.
0240: // */
0241: // int GL_OES_texture_cube_map = 1;
0242:
0243: /**
0244: * Constant for use with <code>glTexGen</code>
0245: * (<code>OES_texture_cube_map</code> extension).
0246: */
0247: int GL_NORMAL_MAP = 0x8511;
0248:
0249: /**
0250: * Constant for use with <code>glTexGen</code>
0251: * (<code>OES_texture_cube_map</code> extension).
0252: */
0253: int GL_REFLECTION_MAP = 0x8512;
0254:
0255: /**
0256: * Constant for use with <code>glBindTexture</code>,
0257: * <code>glTexParameter</code>, <code>glEnable</code>,
0258: * <code>glDisable</code>, and <code>glIsEnabled</code>
0259: * (<code>OES_texture_cube_map</code> extension).
0260: */
0261: int GL_TEXTURE_CUBE_MAP = 0x8513;
0262:
0263: /**
0264: * Constant for use with <code>glGetInteger</code>
0265: * (<code>OES_texture_cube_map</code> extension).
0266: */
0267: int GL_TEXTURE_BINDING_CUBE_MAP = 0x8514;
0268:
0269: // Need revisit - value
0270: /**
0271: * Constant for use with <code>glTexGen</code> for the
0272: * <code>OES_texture_cube_map</code> extension.
0273: */
0274: int GL_STR = -1;
0275:
0276: /**
0277: * Constant for use with <code>glTexGen</code>
0278: * (<code>OES_texture_cube_map</code> extension).
0279: */
0280: int GL_TEXTURE_GEN_MODE = 0x2500;
0281:
0282: /**
0283: * Constant for use with <code>glEnable</code> and
0284: * <code>glDisable</code> (<code>OES_texture_cube_map</code>
0285: * extension).
0286: */
0287: int GL_TEXTURE_GEN_STR = 0x8D60;
0288:
0289: /**
0290: * Constant for use with <code>glTexImage2D</code> and
0291: * <code>glCompressedTexImage2D</code>
0292: * (<code>OES_texture_cube_map</code> extension).
0293: */
0294: int GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x207D;
0295:
0296: /**
0297: * Constant for use with <code>glTexImage2D</code> and
0298: * <code>glCompressedTexImage2D</code>
0299: * (<code>OES_texture_cube_map</code> extension).
0300: */
0301: int GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x207E;
0302:
0303: /**
0304: * Constant for use with <code>glTexImage2D</code> and
0305: * <code>glCompressedTexImage2D</code>
0306: * (<code>OES_texture_cube_map</code> extension).
0307: */
0308: int GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x207F;
0309:
0310: /**
0311: * Constant for use with <code>glTexImage2D</code> and
0312: * <code>glCompressedTexImage2D</code>
0313: * (<code>OES_texture_cube_map</code> extension).
0314: */
0315: int GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x2080;
0316:
0317: /**
0318: * Constant for use with <code>glTexImage2D</code> and
0319: * <code>glCompressedTexImage2D</code>
0320: * (<code>OES_texture_cube_map</code> extension).
0321: */
0322: int GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x2081;
0323:
0324: /**
0325: * Constant for use with <code>glTexImage2D</code> and
0326: * <code>glCompressedTexImage2D</code>
0327: * (<code>OES_texture_cube_map</code> extension).
0328: */
0329: int GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x2082;
0330:
0331: /**
0332: * Constant for use with <code>glGetIntegerv</code>
0333: * (<code>OES_texture_cube_map</code> extension).
0334: */
0335: int GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;
0336:
0337: /**
0338: * (1.1 + <code>OES_texture_cube_map</code> extension)
0339: * Bind a named texture to a texturing target.
0340: *
0341: * <p> The <code>OES_texture_cube_map</code> extension allows the
0342: * value <code>GL_TEXTURE_CUBE_MAP</code> to be passed to the
0343: * <code>target</code> parameter.
0344: *
0345: * @param target additionally accepts
0346: * <code>GL_TEXTURE_CUBE_MAP</code>.
0347: *
0348: * @see GL11#glBindTexture(int target, int texture)
0349: */
0350: void glBindTexture(int target, int texture);
0351:
0352: /**
0353: * (1.1 + <code>OES_texture_cube_map</code> extension)
0354: * Specify a two-dimensional compressed texture image.
0355: *
0356: * <p> The <code>OES_texture_cube_map</code> extension allows the
0357: * values
0358: * <code>GL_TEXTURE_CUBE_MAP_{POSITIVE,NEGATIVE}_{X,Y,Z}</code> to
0359: * be passed to the <code>target</code> parameter.
0360: *
0361: * @param target additionally accepts the constants
0362: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>,
0363: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>,
0364: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>,
0365: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>,
0366: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>, and
0367: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>.
0368: *
0369: * @see GL11#glCompressedTexImage2D
0370: *
0371: * @exception IllegalArgumentException if <code>data</code> is
0372: * <code>null</code>.
0373: * @exception IllegalArgumentException if
0374: * <code>data.remaining()</code> is less than
0375: * <code>imageSize</code>.
0376: */
0377: void glCompressedTexImage2D(int target, int level,
0378: int internalformat, int width, int height, int border,
0379: int imageSize, Buffer data);
0380:
0381: /**
0382: * (1.1 + <code>OES_texture_cube_map</code> extension)
0383: * Specify a two-dimensional texture image with pixels from the
0384: * color buffer.
0385: *
0386: * <p> The <code>OES_texture_cube_map</code> extension allows the
0387: * values
0388: * <code>GL_TEXTURE_CUBE_MAP_{POSITIVE,NEGATIVE}_{X,Y,Z}</code> to
0389: * be passed to the <code>target</code> parameter.
0390: *
0391: * @param target additionally accepts the constants
0392: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>,
0393: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>,
0394: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>,
0395: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>,
0396: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>, and
0397: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>.
0398: *
0399: * @see GL11#glCompressedTexImage2D
0400: */
0401: void glCopyTexImage2D(int target, int level, int internalformat,
0402: int x, int y, int width, int height, int border);
0403:
0404: /**
0405: * (1.1 + <code>OES_texture_cube_map</code> extension)
0406: * Enable server-side GL capabilities.
0407: *
0408: * <p>Cube-map texturing is enabled if <code>cap</code> assumes the
0409: * value <code>GL_TEXTURE_CUBE_MAP</code>.
0410: *
0411: * <p>If enabled, cube-map texturing is performed for the active
0412: * texture unit. See <code>GL.glActiveTexture</code>,
0413: * <code>GL.glTexImage2D</code>, <code>glCompressedTexImage2D</code>,
0414: * and <code>glCopyTexImage2D</code>.
0415: *
0416: * <p>Texture coordinates with be generated if <code>cap</code> is
0417: * equal to <code>GL_TEXTURE_GEN_STR</code>.
0418: *
0419: * @see GL11#glEnable(int cap)
0420: */
0421: void glEnable(int cap);
0422:
0423: /**
0424: * (1.1 + <code>OES_texture_cube_map</code>,
0425: * <code>OES_blend_subtract</code>,
0426: * <code>OES_blend_func_separate</code>, and
0427: * <code>OES_blend_equation_separate</code> extensions) Return the
0428: * value or values of a selected parameter.
0429: *
0430: * <p> The extensions in the GL 1.1 Extension Pack add the following
0431: * constants as possible values for <code>pname</code>:
0432: *
0433: * <ul>
0434: *
0435: * <li><code>GL_BLEND_DST_ALPHA</code> (1.1 +
0436: * <code>OES_blend_func_separate</code> extension)</li>
0437: *
0438: * <p><code>params</code> returns one value, the symbolic constant
0439: * identifying the destination blend function set by
0440: * <code>glBlendFunc</code>, or the destination alpha blend function
0441: * set by <code>glBlendFuncSeparate</code>. See
0442: * <code>glBlendFunc</code> and <code>glBlendFuncSeparate</code>.
0443: *
0444: * <li><code>GL_BLEND_DST_RGB</code> (1.1 +
0445: * <code>OES_blend_func_separate</code> extension)</li>
0446: *
0447: * <p><code>params</code> returns one value, the symbolic constant
0448: * identifying the destination blend function set by
0449: * <code>glBlendFunc</code>, or the destination RGB blend function
0450: * set by <code>glBlendFuncSeparate</code>. See
0451: * <code>glBlendFunc</code> and <code>glBlendFuncSeparate</code>.
0452: *
0453: * <li><code>GL_BLEND_EQUATION</code> (1.1 +
0454: * <code>OES_blend_subtract</code> and
0455: * <code>OES_blend_equation_separate</code> extensions)</li>
0456: *
0457: * <p><code>params</code> returns one value, the symbolic constant
0458: * identifying the blend equation set by
0459: * <code>glBlendEquation</code>, or the RGB blend equation set by
0460: * <code>glBlendEquationSeparate</code>. See
0461: * <code>glBlendEquation</code> and
0462: * <code>glBlendEquationSeparate</code>.
0463: *
0464: * <li><code>GL_BLEND_EQUATION_ALPHA</code> (1.1 +
0465: * <code>OES_blend_equation_separate</code> extension)</li>
0466: *
0467: * <p><code>params</code> returns one value, the symbolic constant
0468: * identifying the blend equation set by
0469: * <code>glBlendEquation</code>, or the alpha blend equation set by
0470: * <code>glBlendEquationSeparate</code>. See
0471: * <code>glBlendEquation</code> and
0472: * <code>glBlendEquationSeparate</code>.
0473: *
0474: * <li><code>GL_BLEND_EQUATION_RGB</code> (1.1 +
0475: * <code>OES_blend_subtract</code> and
0476: * <code>OES_blend_equation_separate</code> extensions)</li>
0477: *
0478: * <p><code>params</code> returns one value, the symbolic constant
0479: * identifying the blend equation set by
0480: * <code>glBlendEquation</code>, or the RGB blend equation set by
0481: * <code>glBlendEquationSeparate</code>. See
0482: * <code>glBlendEquation</code> and
0483: * <code>glBlendEquationSeparate</code>.
0484: *
0485: * <li><code>GL_BLEND_SRC</code> (1.1 only)</li>
0486: *
0487: * <p><code>params</code> returns one value, the symbolic constant
0488: * identifying the source blend function set by <code>glBlendFunc</code>,
0489: * or the source RGB blend function set by
0490: * <code>glBlendFuncSeparate</code>. See <code>glBlendFunc</code> and
0491: * <code>glBlendFuncSeparate</code>.
0492: *
0493: * <li><code>GL_BLEND_SRC_ALPHA</code> (1.1 +
0494: * <code>OES_blend_func_separate</code> extension)</li>
0495: *
0496: * <p><code>params</code> returns one value, the symbolic constant
0497: * identifying the source blend function set by <code>glBlendFunc</code>,
0498: * or the source alpha blend function set by
0499: * <code>glBlendFuncSeparate</code>. See <code>glBlendFunc</code> and
0500: * <code>glBlendFuncSeparate</code>.
0501: *
0502: * <li><code>GL_BLEND_SRC_RGB</code> (1.1 +
0503: * <code>OES_blend_func_separate</code> extension)</li>
0504: *
0505: * <p><code>params</code> returns one value, the symbolic constant
0506: * identifying the source blend function set by <code>glBlendFunc</code>,
0507: * or the source RGB blend function set by
0508: * <code>glBlendFuncSeparate</code>. See <code>glBlendFunc</code> and
0509: * <code>glBlendFuncSeparate</code>.
0510: *
0511: * <li><code>GL_MAX_CUBE_MAP_TEXTURE_SIZE</code> (1.1 +
0512: * <code>OES_texture_cube_map</code> extension)</li>
0513: *
0514: * <p><code>params</code> returns one value, the maximum dimension
0515: * of any face in a cube map texture. The value must be at least
0516: * 64. See <code>glTexImage2D</code>,
0517: * <code>glCompressedTexImage2D</code>, and
0518: * <code>glCopyTexImage2D</code>.
0519: *
0520: * <li><code>GL_MAX_PALETTE_MATRICES_OES</code>
0521: * (<code>OES_matrix_palette</code> extension)</li>
0522: *
0523: * <p><code>params</code> returns the size of the matrix
0524: * palette. The initial value is 32 if the
0525: * <code>OES_extended_matrix_palette</code> extension is present.
0526: *
0527: * <li><code>GL_MAX_VERTEX_UNITS_OES</code>
0528: * (<code>OES_matrix_palette</code> extension)</li>
0529: *
0530: * <p><code>params</code> returns the number of matrices per
0531: * vertex. The initial value is 4 if the
0532: * <code>OES_extended_matrix_palette</code> extension is present.
0533: *
0534: * </ul>
0535: *
0536: * @see GL11#glGetIntegerv(int pname, int[] params, int offset)
0537: *
0538: * @exception IllegalArgumentException if <code>params</code> is
0539: * <code>null</code>.
0540: * @exception IllegalArgumentException if <code>offset</code> is
0541: * less than 0.
0542: * @exception IllegalArgumentException if <code>params.length -
0543: * offset</code> is smaller than the number of values required by
0544: * the parameter.
0545: */
0546: void glGetIntegerv(int pname, int[] params, int offset);
0547:
0548: /**
0549: * (1.1 + <code>OES_texture_cube_map</code>,
0550: * <code>OES_blend_subtract</code>,
0551: * <code>OES_blend_func_separate</code>, and
0552: * <code>OES_blend_equation_separate</code> extensions)
0553: * Integer <code>Buffer</code> version of
0554: * <code>getGetIntegerv</code>.
0555: *
0556: * @see #glGetIntegerv(int pname, int[] params, int offset)
0557: *
0558: * @exception IllegalArgumentException if <code>params</code> is
0559: * <code>null</code>.
0560: * @exception IllegalArgumentException if
0561: * <code>params.remaining()</code> is smaller than the number of
0562: * values required by the parameter.
0563: */
0564: void glGetIntegerv(int pname, IntBuffer params);
0565:
0566: /**
0567: * (1.1 + <code>OES_texture_cube_map</code> extension)
0568: * Specify texture coordinate generation function.
0569: *
0570: * <p>The <code>OES_texture_cube_map</code> extension provides a new
0571: * texture generation scheme for cube map textures. Instead of the
0572: * current texture providing a 2D lookup into a 2D texture image,
0573: * the texture is a set of six 2D images representing the faces of a
0574: * cube. The <code>(s,t,r)</code> texture coordinates are treated as
0575: * a direction vector emanating from the center of a cube. At
0576: * texture generation time, the interpolated per-fragment
0577: * <code>(s,t,r)</code> selects one cube face 2D image based on the
0578: * largest magnitude coordinate (the major axis). A new 2D
0579: * <code>(s,t)</code> is calculated by dividing the two other
0580: * coordinates (the minor axes values) by the major axis value. Then
0581: * the new <code>(s,t)</code> is used to lookup into the selected 2D
0582: * texture image face of the cube map.
0583: *
0584: * <p>Unlike a standard 2D texture that have just one target, a cube
0585: * map texture has six targets, one for each of its six 2D texture
0586: * image cube faces. All these targets must be consistent, complete,
0587: * and have equal width and height.
0588: *
0589: * <p>This extension also provides two new texture coordinate
0590: * generation modes for use in conjunction with cube map
0591: * texturing. The reflection map mode generates texture coordinates
0592: * <code>(s,t,r)</code> matching the vertex?s eyespace reflection
0593: * vector. The reflection map mode is useful for environment mapping
0594: * without the singularity inherent in sphere mapping. The normal
0595: * map mode generates texture coordinates <code>(s,t,r)</code>
0596: * matching the vertex?s transformed eyespace normal. The normal map
0597: * mode is useful for sophisticated cube map texturing-based diffuse
0598: * lighting models.
0599: *
0600: * <p>The intent of the new texgen functionality is that an
0601: * application using cube map texturing can use the new texgen modes
0602: * to automatically generate the reflection or normal vectors used
0603: * to look up into the cube map texture.
0604: *
0605: * <p>The following texgen modes are supported: <code>GL_REFLECTION
0606: * MAP</code> and <code>GL_NORMAL MAP</code>. The
0607: * <code>GL_SPHERE_MAP</code>, <code>GL_OBJECT LINEAR</code>, and
0608: * <code>GL_EYE LINEAR</code> texgen modes are not supported. Texgen
0609: * supports a new coord value <code>GL_STR</code>. This allows the
0610: * application to specify the texgen mode for the appropriate
0611: * coordinates in a single call. Texgen with coord values of
0612: * <code>GL_S</code>, <code>GL_T</code>, <code>GL_R</code> and
0613: * <code>GL_Q</code> are not supported.
0614: *
0615: * <h4>Errors</h4>
0616: *
0617: * <p><code>GL_INVALID_ENUM</code> is generated if
0618: * <code>param</code> or <code>pname</code> is not an accepted
0619: * value, or if <code>pname</code> is
0620: * <code>GL_TEXTURE_GEN_MODE</code> and <code>params</code> is not
0621: * <code>GL_REFLECTION_MAP</code> or <code>GL_NORMAL_MAP</code>.
0622: *
0623: * <h4>Associated Gets</h4>
0624: *
0625: * <p><code>glGetTexGen</code>, <code>glIsEnabled</code> with
0626: * argument <code>GL_TEXTURE_GEN_STR</code>.
0627: *
0628: * @param coord Specifies the texture coordinate or coordinates for
0629: * which a generation function is being specified. At present, only
0630: * <code>GL_STR</code> is accepted.
0631: * @param pname Specifies a single-valued integer texture coordinate
0632: * generation parameter. At present, only
0633: * <code>GL_TEXTURE_GEN_MODE</code> is accepted.
0634: * @param param Specifies the value that <code>pname</code> will be
0635: * set to. If <code>pname</code> is <code>GL_TEXTURE_GEN_MODE</code>, then
0636: * <code>GL_REFLECTION_MAP</code> and <code>GL_NORMAL_MAP</code> are
0637: * accepted.
0638: *
0639: * @exception UnsupportedOperationException if the underlying
0640: * runtime engine does not support the
0641: * <code>OES_texture_cube_map</code> extension.
0642: */
0643: void glTexGeni(int coord, int pname, int param);
0644:
0645: /**
0646: * (1.1 + <code>OES_texture_cube_map</code> extension)
0647: * Floating-point version of <code>glTexGen</code>.
0648: *
0649: * @see #glTexGeni(int coord, int pname, int param)
0650: *
0651: * @exception UnsupportedOperationException if the underlying
0652: * runtime engine does not support the
0653: * <code>OES_texture_cube_map</code> extension.
0654: */
0655: void glTexGenf(int coord, int pname, float param);
0656:
0657: /**
0658: * (1.1 + <code>OES_texture_cube_map</code> extension)
0659: * Fixed-point version of <code>glTexGen</code>.
0660: *
0661: * @see #glTexGeni(int coord, int pname, int param)
0662: *
0663: * @exception UnsupportedOperationException if the underlying
0664: * runtime engine does not support the
0665: * <code>OES_texture_cube_map</code> extension.
0666: */
0667: void glTexGenx(int coord, int pname, int param);
0668:
0669: /**
0670: * (1.1 + <code>OES_texture_cube_map</code> extension)
0671: * Floating-point array version of <code>glTexGen</code>.
0672: *
0673: * @see #glTexGeni(int coord, int pname, int param)
0674: *
0675: * @exception UnsupportedOperationException if the underlying
0676: * runtime engine does not support the
0677: * <code>OES_texture_cube_map</code> extension.
0678: * @exception IllegalArgumentException if <code>params</code> is
0679: * <code>null</code>.
0680: * @exception IllegalArgumentException if <code>offset</code> is
0681: * less than 0.
0682: * @exception IllegalArgumentException if <code>params.length -
0683: * offset</code> is smaller than the number of values required by
0684: * the parameter.
0685: */
0686: void glTexGenfv(int coord, int pname, float[] params, int offset);
0687:
0688: /**
0689: * (1.1 + <code>OES_texture_cube_map</code> extension)
0690: * Floating-point <code>Buffer</code> version of
0691: * <code>glTexGen</code>.
0692: *
0693: * @see #glTexGeni(int coord, int pname, int param)
0694: *
0695: * @exception UnsupportedOperationException if the underlying
0696: * runtime engine does not support the
0697: * <code>OES_texture_cube_map</code> extension.
0698: * @exception IllegalArgumentException if <code>params</code> is
0699: * <code>null</code>.
0700: * @exception IllegalArgumentException if
0701: * <code>params.remaining()</code> is smaller than the number of
0702: * values required by the parameter.
0703: */
0704: void glTexGenfv(int coord, int pname, FloatBuffer params);
0705:
0706: /**
0707: * (1.1 + <code>OES_texture_cube_map</code> extension)
0708: * Integer array version of <code>glTexGen</code>.
0709: *
0710: * @see #glTexGeni(int coord, int pname, int param)
0711: *
0712: * @exception UnsupportedOperationException if the underlying
0713: * runtime engine does not support the
0714: * <code>OES_texture_cube_map</code> extension.
0715: * @exception IllegalArgumentException if <code>params</code> is
0716: * <code>null</code>.
0717: * @exception IllegalArgumentException if <code>offset</code> is
0718: * less than 0.
0719: * @exception IllegalArgumentException if <code>params.length -
0720: * offset</code> is smaller than the number of values required by
0721: * the parameter.
0722: */
0723: void glTexGeniv(int coord, int pname, int[] params, int offset);
0724:
0725: /**
0726: * (1.1 + <code>OES_texture_cube_map</code> extension)
0727: * Integer <code>Buffer</code> version of <code>glTexGen</code>.
0728: *
0729: * @see #glTexGeni(int coord, int pname, int param)
0730: *
0731: * @exception UnsupportedOperationException if the underlying
0732: * runtime engine does not support the
0733: * <code>OES_texture_cube_map</code> extension.
0734: * @exception IllegalArgumentException if <code>params</code> is
0735: * <code>null</code>.
0736: * @exception IllegalArgumentException if
0737: * <code>params.remaining()</code> is smaller than the number of
0738: * values required by the parameter.
0739: */
0740: void glTexGeniv(int coord, int pname, IntBuffer params);
0741:
0742: /**
0743: * (1.1 + <code>OES_texture_cube_map</code> extension)
0744: * Fixed-point array version of <code>glTexGen</code>.
0745: *
0746: * @see #glTexGeni(int coord, int pname, int param)
0747: *
0748: * @exception UnsupportedOperationException if the underlying
0749: * runtime engine does not support the
0750: * <code>OES_texture_cube_map</code> extension.
0751: * @exception IllegalArgumentException if <code>params</code> is
0752: * <code>null</code>.
0753: * @exception IllegalArgumentException if <code>offset</code> is
0754: * less than 0.
0755: * @exception IllegalArgumentException if <code>params.length -
0756: * offset</code> is smaller than the number of values required by
0757: * the parameter.
0758: */
0759: void glTexGenxv(int coord, int pname, int[] params, int offset);
0760:
0761: /**
0762: * (1.1 + <code>OES_texture_cube_map</code> extension)
0763: * Fixed-point <code>Buffer</code> version of <code>glTexGen</code>.
0764: *
0765: * @see #glTexGeni(int coord, int pname, int param)
0766: *
0767: * @exception UnsupportedOperationException if the underlying
0768: * runtime engine does not support the
0769: * <code>OES_texture_cube_map</code> extension.
0770: * @exception IllegalArgumentException if <code>params</code> is
0771: * <code>null</code>.
0772: * @exception IllegalArgumentException if
0773: * <code>params.remaining()</code> is smaller than the number of
0774: * values required by the parameter.
0775: */
0776: void glTexGenxv(int coord, int pname, IntBuffer params);
0777:
0778: // GetTexGen
0779:
0780: /**
0781: * (1.1 + <code>OES_texture_cube_map</code> extension)
0782: * Get texture coordinate generation parameters.
0783: *
0784: * This method queries texture coordinate generation parameters set
0785: * using <code>glTexGen</code>.
0786: *
0787: * <h4>Errors</h4>
0788: *
0789: * <p><code>GL_INVALID_ENUM</code> is generated if
0790: * <code>param</code> or <code>pname</code> is not an accepted
0791: * value, or if <code>pname</code> is
0792: * <code>GL_TEXTURE_GEN_MODE</code> and <code>params</code> is not
0793: * <code>GL_REFLECTION_MAP</code> or <code>GL_NORMAL_MAP</code>.
0794: *
0795: * @param coord Specifies the texture coordinate or coordinates for
0796: * which a generation parameter is being requested. At present, only
0797: * <code>GL_STR</code> is accepted.
0798: * @param pname Specifies a single-valued integer texture coordinate
0799: * generation parameter. At present, only
0800: * <code>GL_TEXTURE_GEN_MODE</code> is accepted.
0801: * @param params Returns the value or values of the specified
0802: * parameter.
0803: *
0804: * @exception UnsupportedOperationException if the underlying
0805: * runtime engine does not support the
0806: * <code>OES_texture_cube_map</code> extension.
0807: * @exception IllegalArgumentException if <code>params</code> is
0808: * <code>null</code>.
0809: * @exception IllegalArgumentException if <code>offset</code> is
0810: * less than 0.
0811: * @exception IllegalArgumentException if <code>params.length -
0812: * offset</code> is smaller than the number of values required by
0813: * the parameter.
0814: */
0815: void glGetTexGeniv(int coord, int pname, int[] params, int offset);
0816:
0817: /**
0818: * (1.1 + <code>OES_texture_cube_map</code> extension)
0819: * Integer <code>Buffer</code> version of <code>glGetTexGen</code>.
0820: *
0821: * @see #glGetTexGeniv(int coord, int pname, int[] params, int offset)
0822: *
0823: * @exception UnsupportedOperationException if the underlying
0824: * runtime engine does not support the
0825: * <code>OES_texture_cube_map</code> extension.
0826: * @exception IllegalArgumentException if <code>params</code> is
0827: * <code>null</code>.
0828: * @exception IllegalArgumentException if
0829: * <code>params.remaining()</code> is smaller than the number of
0830: * values required by the parameter.
0831: */
0832: void glGetTexGeniv(int coord, int pname, IntBuffer params);
0833:
0834: /**
0835: * (1.1 + <code>OES_texture_cube_map</code> extension)
0836: * Floating-point array version of <code>glGetTexGen</code>.
0837: *
0838: * @see #glGetTexGeniv(int coord, int pname, int[] params, int offset)
0839: *
0840: * @exception UnsupportedOperationException if the underlying
0841: * runtime engine does not support the
0842: * <code>OES_texture_cube_map</code> extension.
0843: * @exception IllegalArgumentException if <code>params</code> is
0844: * <code>null</code>.
0845: * @exception IllegalArgumentException if <code>offset</code> is
0846: * less than 0.
0847: * @exception IllegalArgumentException if <code>params.length -
0848: * offset</code> is smaller than the number of values required by
0849: * the parameter.
0850: */
0851: void glGetTexGenfv(int coord, int pname, float[] params, int offset);
0852:
0853: /**
0854: * (1.1 + <code>OES_texture_cube_map</code> extension)
0855: * Fixed-point array version of <code>glGetTexGen</code>.
0856: *
0857: * @see #glGetTexGeniv(int coord, int pname, int[] params, int offset)
0858: *
0859: * @exception UnsupportedOperationException if the underlying
0860: * runtime engine does not support the
0861: * <code>OES_texture_cube_map</code> extension.
0862: * @exception IllegalArgumentException if <code>params</code> is
0863: * <code>null</code>.
0864: * @exception IllegalArgumentException if <code>offset</code> is
0865: * less than 0.
0866: * @exception IllegalArgumentException if <code>params.length -
0867: * offset</code> is smaller than the number of values required by
0868: * the parameter.
0869: */
0870: void glGetTexGenxv(int coord, int pname, int[] params, int offset);
0871:
0872: /**
0873: * (1.1 + <code>OES_texture_cube_map</code> extension)
0874: * Fixed-point <code>Buffer</code> version of <code>glGetTexGen</code>.
0875: *
0876: * @see #glGetTexGeniv(int coord, int pname, int[] params, int offset)
0877: *
0878: * @exception UnsupportedOperationException if the underlying
0879: * runtime engine does not support the
0880: * <code>OES_texture_cube_map</code> extension.
0881: * @exception IllegalArgumentException if <code>params</code> is
0882: * <code>null</code>.
0883: * @exception IllegalArgumentException if
0884: * <code>params.remaining()</code> is smaller than the number of
0885: * values required by the parameter.
0886: */
0887: void glGetTexGenxv(int coord, int pname, IntBuffer params);
0888:
0889: /**
0890: * (1.1 + <code>OES_texture_cube_map</code> extension)
0891: * Floating-point <code>Buffer</code> version of <code>glGetTexGen</code>.
0892: *
0893: * @see #glGetTexGeniv(int coord, int pname, int[] params, int offset)
0894: *
0895: * @exception UnsupportedOperationException if the underlying
0896: * runtime engine does not support the
0897: * <code>OES_texture_cube_map</code> extension.
0898: * @exception IllegalArgumentException if <code>params</code> is
0899: * <code>null</code>.
0900: * @exception IllegalArgumentException if
0901: * <code>params.remaining()</code> is smaller than the number of
0902: * values required by the parameter.
0903: */
0904: void glGetTexGenfv(int coord, int pname, FloatBuffer params);
0905:
0906: // /**
0907: // * Flag indicating the presence of the "blend subtract" extension.
0908: // * <code>OES_blend_subtract</code> is an optional profile extension
0909: // * in OpenGL ES 1.1, and is part of the OpenGL ES 1.1 Extension
0910: // * Pack.
0911: // *
0912: // * <p> The value of this flag does not imply the presence of the
0913: // * extension in the runtime enviroment.
0914: // */
0915: // int GL_OES_blend_subtract = 1;
0916:
0917: /**
0918: * Constant for use with <code>glBlendEquation</code>
0919: * (<code>OES_blend_subtract</code> extension).
0920: */
0921: int GL_FUNC_ADD = 0x8006;
0922:
0923: /**
0924: * Constant for use with <code>glBlendEquation</code>
0925: * (<code>OES_blend_subtract</code> extension).
0926: */
0927: int GL_FUNC_SUBTRACT = 0x800A;
0928:
0929: /**
0930: * Constant for use with <code>glBlendEquation</code>
0931: * (<code>OES_blend_subtract</code> extension).
0932: */
0933: int GL_FUNC_REVERSE_SUBTRACT = 0x800B;
0934:
0935: /**
0936: * (1.1 + <code>OES_blend_subtract</code> extension) Specify the
0937: * blending equation.
0938: *
0939: * <p>Blending is controlled by <code>glBlendEquation</code>.
0940: *
0941: * <p><code>glBlendEquation</code> <code>mode</code>
0942: * <code>GL_FUNC_ADD</code> defines the blend equation as
0943: *
0944: * <pre>C = Cs * S + Cd * D,</pre>
0945: *
0946: * where <code>Cs</code> and <code>Cd</code> are the source and
0947: * destination colors, <code>S</code> and <code>D</code> are the
0948: * quadruplets of weighting factors determined by the blend
0949: * functions <code>glBlendFunc</code> and
0950: * <code>glBlendFuncSeparate</code>, and C is the new color
0951: * resulting from blending.
0952: *
0953: * <p>If <code>mode</code> is <code>GL_FUNC_SUBTRACT</code>, the
0954: * blending equation is defined as
0955: *
0956: * <pre>C = Cs * S - Cd * D.</pre>
0957: *
0958: * <p>If <code>mode</code> is <code>GL_FUNC_REVERSE_SUBTRACT</code>,
0959: * the blend equation is defined as
0960: *
0961: * <pre>C = Cd * D - Cs * S.</pre>
0962: *
0963: * <h4>Errors</h4>
0964: *
0965: * <p><code>GL_INVALID_ENUM</code> is generated if <code>mode</code>
0966: * is not an accepted value.
0967: *
0968: * <h4>Associated Gets</h4>
0969: *
0970: * <p><code>glGetIntegerv</code> with argument
0971: * <code>GL_BLEND_EQUATION</code> returns the blend equation.
0972: *
0973: * @param mode Specifies the blend
0974: * equation. <code>GL_FUNC_ADD</code>,
0975: * <code>GL_FUNC_SUBTRACT</code>, and
0976: * <code>GL_FUNC_REVERSE_SUBTRACT</code> are accepted.
0977: *
0978: * @see GL11#glBlendFunc
0979: * @see #glBlendFuncSeparate
0980: *
0981: * @exception UnsupportedOperationException if the underlying
0982: * runtime engine does not support the
0983: * <code>OES_blend_subtract</code> extension.
0984: */
0985: void glBlendEquation(int mode);
0986:
0987: // /**
0988: // * Flag indicating the presence of the "blend func separate"
0989: // * extension. <code>OES_blend_func_separate</code> is an optional
0990: // * profile extension in OpenGL ES 1.1, and is part of the OpenGL ES
0991: // * 1.1 Extension Pack.
0992: // *
0993: // * <p> The value of this flag does not imply the presence
0994: // * of the extension in the runtime enviroment.
0995: // */
0996: // int GL_OES_blend_func_separate = 1;
0997:
0998: /**
0999: * Constant for use with <code>glBlendFuncSeparate</code>
1000: * (<code>OES_blend_func_separate</code> extension).
1001: */
1002: int GL_BLEND_DST_RGB = 0x80C8;
1003:
1004: /**
1005: * Constant for use with <code>glBlendFuncSeparate</code>
1006: * (<code>OES_blend_func_separate</code> extension).
1007: */
1008: int GL_BLEND_SRC_RGB = 0x80C9;
1009:
1010: /**
1011: * Constant for use with <code>glBlendFuncSeparate</code>
1012: * (<code>OES_blend_func_separate</code> extension).
1013: */
1014: int GL_BLEND_DST_ALPHA = 0x80CA;
1015:
1016: /**
1017: * Constant for use with <code>glBlendFuncSeparate</code>
1018: * (<code>OES_blend_func_separate</code> extension).
1019: */
1020: int GL_BLEND_SRC_ALPHA = 0x80CB;
1021:
1022: /**
1023: * (1.1 + <code>GL_OES_blend_func_separate</code> extension)
1024: * Apply different blend factors to RGB and alpha.
1025: *
1026: * <p><code>glBlendFuncSeparate</code> allows different blend factors to be
1027: * applied to RGB and alpha. The blend factors are those defined for
1028: * <code>glBlendFunc</code>.
1029: *
1030: * <h4>Errors</h4>
1031: *
1032: * <p><code>GL_INVALID_ENUM</code> is generated if
1033: * <code>srcRGB</code>, <code>dstRGB</code>, <code>srcAlpha</code>,
1034: * or <code>dstAlpha</code> is not an accepted value.
1035: *
1036: * <h4>Associated Gets</h4>
1037: *
1038: * <p><code>glGetIntegerv</code> with argument
1039: * <code>GL_BLEND_SRC_RGB</code> or <code>GL_BLEND_SRC</code>
1040: * returns the source RGB blend function.
1041: *
1042: * <p><code>glGetIntegerv</code> with argument
1043: * <code>GL_BLEND_DST_RGB</code> or <code>GL_BLEND_DST</code>
1044: * returns the destination RGB blend function.
1045: *
1046: * <p><code>glGetIntegerv</code> with argument
1047: * <code>GL_BLEND_SRC_ALPHA</code> returns the source alpha blend
1048: * function.
1049: *
1050: * <p><code>glGetIntegerv</code> with argument
1051: * <code>GL_BLEND_DST_ALPHA</code> returns the destination alpha
1052: * blend function.
1053: *
1054: * @param srcRGB Source RGB blend function. Must be one of the blend
1055: * functions accepted by <code>glBlendFunc</code>.
1056: * @param dstRGB Destination RGB blend function. Must be one of the blend
1057: * functions accepted by <code>glBlendFunc</code>.
1058: * @param srcAlpha Source alpha blend function. Must be one of the
1059: * blend functions accepted by <code>glBlendFunc</code>.
1060: * @param dstAlpha Destination alpha blend function. Must be one of
1061: * the blend functions accepted by <code>glBlendFunc</code>.
1062: *
1063: * @see GL11#glBlendFunc
1064: *
1065: * @exception UnsupportedOperationException if the underlying
1066: * runtime engine does not support the
1067: * <code>OES_blend_func_separate</code> extension.
1068: */
1069: void glBlendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha,
1070: int dstAlpha);
1071:
1072: // /**
1073: // * Flag indicating the presence of the "blend equation separate"
1074: // * extension. <code>OES_blend_equation_separate</code> is an
1075: // * optional profile extension in OpenGL ES 1.1, and is part of the
1076: // * OpenGL ES 1.1 Extension Pack.
1077: // *
1078: // * <p> The value of this flag does not imply the presence
1079: // * of the extension in the runtime enviroment.
1080: // */
1081: // int GL_OES_blend_equation_separate = 1;
1082:
1083: /**
1084: * Constant for use with <code>glBlendEquationSeparate</code> and
1085: * <code>glGetInteger</code>
1086: * (<code>OES_blend_equation_separate</code> extension).
1087: */
1088: int GL_BLEND_EQUATION = 0x8009;
1089:
1090: /**
1091: * Constant for use with <code>glBlendEquationSeparate</code> and
1092: * <code>glGetInteger</code>
1093: * (<code>OES_blend_equation_separate</code> extension). Synonym
1094: * for <code>GL_BLEND_EQUATION</code>.
1095: */
1096: int GL_BLEND_EQUATION_RGB = 0x8009;
1097:
1098: /**
1099: * Constant for use with <code>glBlendEquationSeparate</code> and
1100: * <code>glGetInteger</code>
1101: * (<code>OES_blend_equation_separate</code> extension).
1102: */
1103: int GL_BLEND_EQUATION_ALPHA = 0x883D;
1104:
1105: /**
1106: * (1.1 + <code>OES_blend_equation_separate</code> extension)
1107: * Provide different blend equations for RGB and alpha.
1108: *
1109: * <p><code>glBlendEquationSeparate</code> allows different blend
1110: * equations to be provideded for RGB and alpha. The blend equations
1111: * are those defined for <code>glBlendEquation</code>.
1112: *
1113: * <h4>Errors</h4>
1114: *
1115: * <p><code>GL_INVALID_ENUM</code> is generated if
1116: * <code>modeRGB</code>, or <code>modeAlpha</code> is not an
1117: * accepted value.
1118: *
1119: * <h4>Associated Gets</h4>
1120: *
1121: * <p><code>glGetIntegerv</code> with argument
1122: * <code>GL_BLEND_EQUATION_RGB</code> or
1123: * <code>GL_BLEND_EQUATION</code> returns the RGB blend equation.
1124: *
1125: * <p><code>glGetIntegerv</code> with argument
1126: * <code>GL_BLEND_EQUATION_ALPHA</code> returns the alpha blend
1127: * equation.
1128: *
1129: * @param modeRGB RGB blend equation. Must be one of the blend
1130: * equations accepted by <code>glBlendEquation</code>.
1131: * @param modeAlpha Alpha blend equation. Must be one of the blend
1132: * equations accepted by <code>glBlendEquation</code>.
1133: *
1134: * @see #glBlendEquation
1135: *
1136: * @exception UnsupportedOperationException if the underlying
1137: * runtime engine does not support the
1138: * <code>OES_blend_equation_separate</code> extension.
1139: */
1140: void glBlendEquationSeparate(int modeRGB, int modeAlpha);
1141:
1142: // /**
1143: // * Flag indicating the presence of the "stencil wrap" extension.
1144: // * <code>OES_stencil_wrap</code> is an optional profile extension in
1145: // * OpenGL ES 1.1, and is part of the OpenGL ES 1.1 Extension Pack.
1146: // *
1147: // * <p> The value of this flag does not imply the presence of the
1148: // * extension in the runtime enviroment.
1149: // */
1150: // int GL_OES_stencil_wrap = 1;
1151:
1152: /**
1153: * Constant for use with <code>glStencilOp</code>
1154: * (<code>OES_stencil_wrap</code> extension).
1155: */
1156: int GL_INCR_WRAP = 0x8507;
1157:
1158: /**
1159: * Constant for use with <code>glStencilOp</code>
1160: * (<code>OES_stencil_wrap</code> extension).
1161: */
1162: int GL_DECR_WRAP = 0x8508;
1163:
1164: /**
1165: * (<code>OES_stencil_wrap</code> extension)
1166: * Set stencil test actions.
1167: *
1168: * <p> Two additional actions are defined by the
1169: * <code>OES_stencil_wrap</code> extension:
1170: *
1171: * <ul>
1172: *
1173: * <li>(<code>OES_stencil_wrap</code> extension)
1174: * <code>GL_DECR_WRAP</code></li>
1175: *
1176: * <p>Decrements the current stencil buffer value, wrapping around
1177: * to the maximum representable unsigned value if less than 0.
1178: *
1179: * <li>(<code>OES_stencil_wrap</code> extension)
1180: * <code>GL_INCR</code></li>
1181: *
1182: * <p>Increments the current stencil buffer value, wrapping around
1183: * to 0 if greater than the maximum representable unsigned value.
1184: *
1185: * </ul>
1186: *
1187: * @see GL11#glStencilOp(int fail, int zfail, int zpass)
1188: */
1189: void glStencilOp(int fail, int zfail, int zpass);
1190:
1191: // /**
1192: // * Flag indicating the presence of the "extended matrix palette"
1193: // * extension. <code>OES_extended_matrix_palette</code> is an
1194: // * optional profile extension in OpenGL ES 1.1, and is part of the
1195: // * OpenGL ES 1.1 Extension Pack.
1196: // *
1197: // * <p> The value of this flag does not imply the presence of the
1198: // * extension in the runtime enviroment.
1199: // */
1200: // int GL_OES_extended_matrix_palette = 1;
1201:
1202: // /**
1203: // * Flag indicating the presence of the "framebuffer object"
1204: // * extension. <code>OES_framebuffer_object</code> is an optional
1205: // * profile extension in OpenGL ES 1.1, and is part of the OpenGL ES
1206: // * 1.1 Extension Pack.
1207: // *
1208: // * <p> The value of this flag does not imply the presence of the
1209: // * extension in the runtime enviroment.
1210: // */
1211: // int GL_OES_framebuffer_object = 1;
1212:
1213: /**
1214: * Constant accepted by the <code>target</code> parameter of
1215: * <code>glBindFramebufferOES</code>,
1216: * <code>glCheckFramebufferStatusOES</code>,
1217: * <code>glFramebufferTexture2DOES</code>,
1218: * <code>glFramebufferRenderbufferOES</code>, and
1219: * <code>glGetFramebufferAttachmentParameterivOES</code>
1220: * (<code>OES_framebuffer_object</code> extension).
1221: */
1222: int GL_FRAMEBUFFER_OES = 0x8D40;
1223:
1224: /**
1225: * Constant accepted by the <code>target</code> parameter of
1226: * <code>glBindRenderbufferOES</code>,
1227: * <code>glRenderbufferStorageOES</code>, and
1228: * <code>glGetRenderbufferParameterivOES</code>, and returned by
1229: * <code>glGetFramebufferAttachmentParameterivOES</code>
1230: * (<code>OES_framebuffer_object</code> extension).
1231: */
1232: int GL_RENDERBUFFER_OES = 0x8D41;
1233:
1234: /**
1235: * Constant accepted by the <code>pname</code> parameter of
1236: * <code>glGetRenderbufferParameterivOES</code>
1237: * (<code>OES_framebuffer_object</code> extension).
1238: */
1239: int GL_RENDERBUFFER_WIDTH_OES = 0x8D42;
1240:
1241: /**
1242: * Constant accepted by the <code>pname</code> parameter of
1243: * <code>glGetRenderbufferParameterivOES</code>
1244: * (<code>OES_framebuffer_object</code> extension).
1245: */
1246: int GL_RENDERBUFFER_HEIGHT_OES = 0x8D43;
1247:
1248: /**
1249: * Constant accepted by the <code>pname</code> parameter of
1250: * <code>glGetRenderbufferParameterivOES</code>
1251: * (<code>OES_framebuffer_object</code> extension).
1252: */
1253: int GL_RENDERBUFFER_INTERNAL_FORMAT_OES = 0x8D44;
1254:
1255: /**
1256: * Constant accepted by the <code>pname</code> parameter of
1257: * <code>glGetRenderbufferParameterivOES</code>
1258: * (<code>OES_framebuffer_object</code> extension).
1259: */
1260: int GL_RENDERBUFFER_RED_SIZE_OES = 0x8D50;
1261:
1262: /**
1263: * Constant accepted by the <code>pname</code> parameter of
1264: * <code>glGetRenderbufferParameterivOES</code>
1265: * (<code>OES_framebuffer_object</code> extension).
1266: */
1267: int GL_RENDERBUFFER_GREEN_SIZE_OES = 0x8D51;
1268:
1269: /**
1270: * Constant accepted by the <code>pname</code> parameter of
1271: * <code>glGetRenderbufferParameterivOES</code>
1272: * (<code>OES_framebuffer_object</code> extension).
1273: */
1274: int GL_RENDERBUFFER_BLUE_SIZE_OES = 0x8D52;
1275:
1276: /**
1277: * Constant accepted by the <code>pname</code> parameter of
1278: * <code>glGetRenderbufferParameterivOES</code>
1279: * (<code>OES_framebuffer_object</code> extension).
1280: */
1281: int GL_RENDERBUFFER_ALPHA_SIZE_OES = 0x8D53;
1282:
1283: /**
1284: * Constant accepted by the <code>pname</code> parameter of
1285: * <code>glGetRenderbufferParameterivOES</code>
1286: * (<code>OES_framebuffer_object</code> extension).
1287: */
1288: int GL_RENDERBUFFER_DEPTH_SIZE_OES = 0x8D54;
1289:
1290: /**
1291: * Constant accepted by the <code>pname</code> parameter of
1292: * <code>glGetRenderbufferParameterivOES</code>
1293: * (<code>OES_framebuffer_object</code> extension).
1294: */
1295: int GL_RENDERBUFFER_STENCIL_SIZE_OES = 0x8D55;
1296:
1297: /**
1298: * Constant accepted by the <code>pname</code> parameter of
1299: * <code>glGetFramebufferAttachmentParameterivOES</code>
1300: * (<code>OES_framebuffer_object</code> extension).
1301: */
1302: int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 0x8CD0;
1303:
1304: /**
1305: * Constant accepted by the <code>pname</code> parameter of
1306: * <code>glGetFramebufferAttachmentParameterivOES</code>
1307: * (<code>OES_framebuffer_object</code> extension).
1308: */
1309: int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 0x8CD1;
1310:
1311: /**
1312: * Constant accepted by the <code>pname</code> parameter of
1313: * <code>glGetFramebufferAttachmentParameterivOES</code>
1314: * (<code>OES_framebuffer_object</code> extension).
1315: */
1316: int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 0x8CD2;
1317:
1318: /**
1319: * Constant accepted by the <code>pname</code> parameter of
1320: * <code>glGetFramebufferAttachmentParameterivOES</code>
1321: * (<code>OES_framebuffer_object</code> extension).
1322: */
1323: int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 0x8CD3;
1324:
1325: /**
1326: * Constant accepted by the <code>attachment</code> parameter of
1327: * <code>glFramebufferTexture2DOES</code>,
1328: * <code>glFramebufferRenderbufferOES</code>, and
1329: * <code>glGetFramebufferAttachmentParameterivOES</code>
1330: * (<code>OES_framebuffer_object</code> extension).
1331: */
1332: int GL_COLOR_ATTACHMENT0_OES = 0x8CE0;
1333:
1334: /**
1335: * Constant accepted by the <code>attachment</code> parameter of
1336: * <code>glFramebufferTexture2DOES</code>,
1337: * <code>glFramebufferRenderbufferOES</code>, and
1338: * <code>glGetFramebufferAttachmentParameterivOES</code>
1339: * (<code>OES_framebuffer_object</code> extension).
1340: */
1341: int GL_COLOR_ATTACHMENT1_OES = 0x8CE1;
1342:
1343: /**
1344: * Constant accepted by the <code>attachment</code> parameter of
1345: * <code>glFramebufferTexture2DOES</code>,
1346: * <code>glFramebufferRenderbufferOES</code>, and
1347: * <code>glGetFramebufferAttachmentParameterivOES</code>
1348: * (<code>OES_framebuffer_object</code> extension).
1349: */
1350: int GL_COLOR_ATTACHMENT2_OES = 0x8CE2;
1351:
1352: /**
1353: * Constant accepted by the <code>attachment</code> parameter of
1354: * <code>glFramebufferTexture2DOES</code>,
1355: * <code>glFramebufferRenderbufferOES</code>, and
1356: * <code>glGetFramebufferAttachmentParameterivOES</code>
1357: * (<code>OES_framebuffer_object</code> extension).
1358: */
1359: int GL_COLOR_ATTACHMENT3_OES = 0x8CE3;
1360:
1361: /**
1362: * Constant accepted by the <code>attachment</code> parameter of
1363: * <code>glFramebufferTexture2DOES</code>,
1364: * <code>glFramebufferRenderbufferOES</code>, and
1365: * <code>glGetFramebufferAttachmentParameterivOES</code>
1366: * (<code>OES_framebuffer_object</code> extension).
1367: */
1368: int GL_COLOR_ATTACHMENT4_OES = 0x8CE4;
1369:
1370: /**
1371: * Constant accepted by the <code>attachment</code> parameter of
1372: * <code>glFramebufferTexture2DOES</code>,
1373: * <code>glFramebufferRenderbufferOES</code>, and
1374: * <code>glGetFramebufferAttachmentParameterivOES</code>
1375: * (<code>OES_framebuffer_object</code> extension).
1376: */
1377: int GL_COLOR_ATTACHMENT5_OES = 0x8CE5;
1378:
1379: /**
1380: * Constant accepted by the <code>attachment</code> parameter of
1381: * <code>glFramebufferTexture2DOES</code>,
1382: * <code>glFramebufferRenderbufferOES</code>, and
1383: * <code>glGetFramebufferAttachmentParameterivOES</code>
1384: * (<code>OES_framebuffer_object</code> extension).
1385: */
1386: int GL_COLOR_ATTACHMENT6_OES = 0x8CE6;
1387:
1388: /**
1389: * Constant accepted by the <code>attachment</code> parameter of
1390: * <code>glFramebufferTexture2DOES</code>,
1391: * <code>glFramebufferRenderbufferOES</code>, and
1392: * <code>glGetFramebufferAttachmentParameterivOES</code>
1393: * (<code>OES_framebuffer_object</code> extension).
1394: */
1395: int GL_COLOR_ATTACHMENT7_OES = 0x8CE7;
1396:
1397: /**
1398: * Constant accepted by the <code>attachment</code> parameter of
1399: * <code>glFramebufferTexture2DOES</code>,
1400: * <code>glFramebufferRenderbufferOES</code>, and
1401: * <code>glGetFramebufferAttachmentParameterivOES</code>
1402: * (<code>OES_framebuffer_object</code> extension).
1403: */
1404: int GL_COLOR_ATTACHMENT8_OES = 0x8CE8;
1405:
1406: /**
1407: * Constant accepted by the <code>attachment</code> parameter of
1408: * <code>glFramebufferTexture2DOES</code>,
1409: * <code>glFramebufferRenderbufferOES</code>, and
1410: * <code>glGetFramebufferAttachmentParameterivOES</code>
1411: * (<code>OES_framebuffer_object</code> extension).
1412: */
1413: int GL_COLOR_ATTACHMENT9_OES = 0x8CE9;
1414:
1415: /**
1416: * Constant accepted by the <code>attachment</code> parameter of
1417: * <code>glFramebufferTexture2DOES</code>,
1418: * <code>glFramebufferRenderbufferOES</code>, and
1419: * <code>glGetFramebufferAttachmentParameterivOES</code>
1420: * (<code>OES_framebuffer_object</code> extension).
1421: */
1422: int GL_COLOR_ATTACHMENT10_OES = 0x8CEA;
1423:
1424: /**
1425: * Constant accepted by the <code>attachment</code> parameter of
1426: * <code>glFramebufferTexture2DOES</code>,
1427: * <code>glFramebufferRenderbufferOES</code>, and
1428: * <code>glGetFramebufferAttachmentParameterivOES</code>
1429: * (<code>OES_framebuffer_object</code> extension).
1430: */
1431: int GL_COLOR_ATTACHMENT11_OES = 0x8CEB;
1432:
1433: /**
1434: * Constant accepted by the <code>attachment</code> parameter of
1435: * <code>glFramebufferTexture2DOES</code>,
1436: * <code>glFramebufferRenderbufferOES</code>, and
1437: * <code>glGetFramebufferAttachmentParameterivOES</code>
1438: * (<code>OES_framebuffer_object</code> extension).
1439: */
1440: int GL_COLOR_ATTACHMENT12_OES = 0x8CEC;
1441:
1442: /**
1443: * Constant accepted by the <code>attachment</code> parameter of
1444: * <code>glFramebufferTexture2DOES</code>,
1445: * <code>glFramebufferRenderbufferOES</code>, and
1446: * <code>glGetFramebufferAttachmentParameterivOES</code>
1447: * (<code>OES_framebuffer_object</code> extension).
1448: */
1449: int GL_COLOR_ATTACHMENT13_OES = 0x8CED;
1450:
1451: /**
1452: * Constant accepted by the <code>attachment</code> parameter of
1453: * <code>glFramebufferTexture2DOES</code>,
1454: * <code>glFramebufferRenderbufferOES</code>, and
1455: * <code>glGetFramebufferAttachmentParameterivOES</code>
1456: * (<code>OES_framebuffer_object</code> extension).
1457: */
1458: int GL_COLOR_ATTACHMENT14_OES = 0x8CEE;
1459:
1460: /**
1461: * Constant accepted by the <code>attachment</code> parameter of
1462: * <code>glFramebufferTexture2DOES</code>,
1463: * <code>glFramebufferRenderbufferOES</code>, and
1464: * <code>glGetFramebufferAttachmentParameterivOES</code>
1465: * (<code>OES_framebuffer_object</code> extension).
1466: */
1467: int GL_COLOR_ATTACHMENT15_OES = 0x8CEF;
1468:
1469: /**
1470: * Constant accepted by the <code>attachment</code> parameter of
1471: * <code>glFramebufferTexture2DOES</code>,
1472: * <code>glFramebufferRenderbufferOES</code>, and
1473: * <code>glGetFramebufferAttachmentParameterivOES</code>
1474: * (<code>OES_framebuffer_object</code> extension).
1475: */
1476: int GL_DEPTH_ATTACHMENT_OES = 0x8D00;
1477:
1478: /**
1479: * Constant accepted by the <code>attachment</code> parameter of
1480: * <code>glFramebufferTexture2DOES</code>,
1481: * <code>glFramebufferRenderbufferOES</code>, and
1482: * <code>glGetFramebufferAttachmentParameterivOES</code>
1483: * (<code>OES_framebuffer_object</code> extension).
1484: */
1485: int GL_STENCIL_ATTACHMENT_OES = 0x8D20;
1486:
1487: /**
1488: * Constant returned by <code>glCheckFramebufferStatusOES</code>
1489: * (<code>OES_framebuffer_object</code> extension).
1490: */
1491: int GL_FRAMEBUFFER_COMPLETE_OES = 0x8CD5;
1492:
1493: /**
1494: * Constant returned by <code>glCheckFramebufferStatusOES</code>
1495: * (<code>OES_framebuffer_object</code> extension).
1496: */
1497: int GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 0x8CD6;
1498:
1499: /**
1500: * Constant returned by <code>glCheckFramebufferStatusOES</code>
1501: * (<code>OES_framebuffer_object</code> extension).
1502: */
1503: int GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 0x8CD7;
1504:
1505: /**
1506: * Constant returned by <code>glCheckFramebufferStatusOES</code>
1507: * (<code>OES_framebuffer_object</code> extension).
1508: */
1509: int GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 0x8CD9;
1510:
1511: /**
1512: * Constant returned by <code>glCheckFramebufferStatusOES</code>
1513: * (<code>OES_framebuffer_object</code> extension).
1514: */
1515: int GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 0x8CDA;
1516:
1517: /**
1518: * Constant returned by <code>glCheckFramebufferStatusOES</code>
1519: * (<code>OES_framebuffer_object</code> extension).
1520: */
1521: int GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES = 0x8CDB;
1522:
1523: /**
1524: * Constant returned by <code>glCheckFramebufferStatusOES</code>
1525: * (<code>OES_framebuffer_object</code> extension).
1526: */
1527: int GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES = 0x8CDC;
1528:
1529: /**
1530: * Constant returned by <code>glCheckFramebufferStatusOES</code>
1531: * (<code>OES_framebuffer_object</code> extension).
1532: */
1533: int GL_FRAMEBUFFER_UNSUPPORTED_OES = 0x8CDD;
1534:
1535: /**
1536: * Constant accepted by <code>glGetIntegerv</code>
1537: * (<code>OES_framebuffer_object</code> extension).
1538: */
1539: int GL_FRAMEBUFFER_BINDING_OES = 0x8CA6;
1540:
1541: /**
1542: * Constant accepted by <code>glGetIntegerv</code>
1543: * (<code>OES_framebuffer_object</code> extension).
1544: */
1545: int GL_RENDERBUFFER_BINDING_OES = 0x8CA7;
1546:
1547: /**
1548: * Constant accepted by <code>glGetIntegerv</code>
1549: * (<code>OES_framebuffer_object</code> extension).
1550: */
1551: int GL_MAX_COLOR_ATTACHMENTS_OES = 0x8CDF;
1552:
1553: /**
1554: * Constant accepted by <code>glGetIntegerv</code>
1555: * (<code>OES_framebuffer_object</code> extension).
1556: */
1557: int GL_MAX_RENDERBUFFER_SIZE_OES = 0x84E8;
1558:
1559: /**
1560: * Constant returned by <code>glGetError</code>
1561: * (<code>OES_framebuffer_object</code> extension).
1562: */
1563: int GL_INVALID_FRAMEBUFFER_OPERATION_OES = 0x0506;
1564:
1565: /**
1566: * Constant accepted by the <code>internalformat</code> parameter of
1567: * <code>glRenderbufferStorageOES</code>
1568: * (<code>OES_framebuffer_object</code> extension).
1569: */
1570: int GL_RGB565_OES = 0x8D62;
1571:
1572: /**
1573: * Constant accepted by the <code>internalformat</code> parameter of
1574: * <code>glRenderbufferStorageOES</code>
1575: * (<code>OES_framebuffer_object</code> extension).
1576: */
1577: int GL_RGBA4 = 0x8056;
1578:
1579: /**
1580: * Constant accepted by the <code>internalformat</code> parameter of
1581: * <code>glRenderbufferStorageOES</code>
1582: * (<code>OES_framebuffer_object</code> extension).
1583: */
1584: int GL_RGB5_A1 = 0x8057;
1585:
1586: /**
1587: * Constant accepted by the <code>internalformat</code> parameter of
1588: * <code>glRenderbufferStorageOES</code>
1589: * (<code>OES_framebuffer_object</code> extension).
1590: */
1591: int GL_DEPTH_COMPONENT16 = 0x81A5;
1592:
1593: /**
1594: * Constant optionally accepted by the <code>internalformat</code>
1595: * parameter of <code>glRenderbufferStorageOES</code>
1596: * (<code>OES_framebuffer_object</code> extension).
1597: */
1598: int GL_RGBA8 = 0x8058;
1599:
1600: /**
1601: * Constant optionally accepted by the <code>internalformat</code>
1602: * parameter of <code>glRenderbufferStorageOES</code>
1603: * (<code>OES_framebuffer_object</code> extension).
1604: */
1605: int GL_RGB8 = 0x8051;
1606:
1607: /**
1608: * Constant optionally accepted by the <code>internalformat</code>
1609: * parameter of <code>glRenderbufferStorageOES</code>
1610: * (<code>OES_framebuffer_object</code> extension).
1611: */
1612: int GL_DEPTH_COMPONENT24 = 0x81A6;
1613:
1614: /**
1615: * Constant optionally accepted by the <code>internalformat</code>
1616: * parameter of <code>glRenderbufferStorageOES</code>
1617: * (<code>OES_framebuffer_object</code> extension).
1618: */
1619: int GL_DEPTH_COMPONENT32 = 0x81A7;
1620:
1621: /**
1622: * Constant optionally accepted by the <code>internalformat</code>
1623: * parameter of <code>glRenderbufferStorageOES</code>
1624: * (<code>OES_framebuffer_object</code> extension).
1625: */
1626: int GL_STENCIL_INDEX1_OES = 0x8D46;
1627:
1628: /**
1629: * Constant optionally accepted by the <code>internalformat</code>
1630: * parameter of <code>glRenderbufferStorageOES</code>
1631: * (<code>OES_framebuffer_object</code> extension).
1632: */
1633: int GL_STENCIL_INDEX4_OES = 0x8D47;
1634:
1635: /**
1636: * Constant optionally accepted by the <code>internalformat</code>
1637: * parameter of <code>glRenderbufferStorageOES</code>
1638: * (<code>OES_framebuffer_object</code> extension).
1639: */
1640: int GL_STENCIL_INDEX8_OES = 0x8D48;
1641:
1642: /*
1643: int GL_STENCIL_INDEX16_OES = 0x8D49;
1644: */
1645:
1646: /**
1647: * Constant (<code>OES_framebuffer_object</code> extension).
1648: */
1649: int GL_STENCIL_INDEX = 0x1901;
1650:
1651: /**
1652: * Constant (<code>OES_framebuffer_object</code> extension).
1653: */
1654: int GL_DEPTH_COMPONENT = 0x1902;
1655:
1656: /**
1657: * (<code>OES_framebuffer_object</code> extension) Determine whether a
1658: * token represents a renderbuffer.
1659: *
1660: * <p> Returns <code>true</code> if <code>renderbuffer</code> is the
1661: * name of a renderbuffer object. If <code>renderbuffer</code> is
1662: * zero, or if <code>renderbuffer</code> is a non-zero value that is
1663: * not the name of a renderbuffer object,
1664: * <code>glIsRenderbufferOES</code> returns <code>false</code>.
1665: *
1666: * @param renderbuffer an integer.
1667: *
1668: * @exception UnsupportedOperationException if the underlying
1669: * runtime engine does not support the
1670: * <code>OES_framebuffer_object</code> extension.
1671: */
1672: boolean glIsRenderbufferOES(int renderbuffer);
1673:
1674: /**
1675: * (<code>OES_framebuffer_object</code> extension)
1676: * Bind a renderbuffer.
1677: *
1678:
1679: * <p> A renderbuffer is a data storage object containing a single
1680: * image of a renderable internal format. GL provides the methods
1681: * described below to allocate and delete a renderbuffer's image,
1682: * and to attach a renderbuffer's image to a framebuffer object.
1683: *
1684: * <p> The name space for renderbuffer objects is the unsigned
1685: * integers, with zero reserved for the GL. A renderbuffer object
1686: * is created by binding an unused name to
1687: * <code>GL_RENDERBUFFER_OES</code>. The binding is effected by
1688: * setting <code>target</code> to <code>GL_RENDERBUFFER_OES</code>
1689: * and <code>renderbuffer</code> set to the unused name. If
1690: * <code>renderbuffer</code> is not zero, then the resulting
1691: * renderbuffer object is a new state vector, initialized with a
1692: * zero-sized memory buffer, and comprising the state values listed
1693: * in Table 8.nnn of the <code>EXT_framebuffer_object</code>
1694: * specification. Any previous binding to <code>target</code> is
1695: * broken.
1696: *
1697: * <p> <code>glBindRenderbufferOES</code> may also be used to bind an
1698: * existing renderbuffer object. If the bind is successful, no
1699: * change is made to the state of the newly bound renderbuffer
1700: * object, and any previous binding to <code>target</code> is
1701: * broken.
1702: *
1703: * <p> While a renderbuffer object is bound, GL operations on the target
1704: * to which it is bound affect the bound renderbuffer object, and
1705: * queries of the target to which a renderbuffer object is bound
1706: * return state from the bound object.
1707: *
1708: * <p> The name zero is reserved. A renderbuffer object cannot be
1709: * created with the name zero. If <code>renderbuffer</code> is
1710: * zero, then any previous binding to <code>target</code> is broken
1711: * and the <code>target</code> binding is restored to the initial
1712: * state.
1713: *
1714: * <p> In the initial state, the reserved name zero is bound to
1715: * <code>GL_RENDERBUFFER_OES</code>. There is no renderbuffer
1716: * object corresponding to the name zero, so client attempts to
1717: * modify or query renderbuffer state for the target
1718: * <code>GL_RENDERBUFFER_OES</code> while zero is bound will
1719: * generate GL errors.
1720: *
1721: * <p> Using <code>glGetIntegerv</code>, the current
1722: * <code>GL_RENDERBUFFER_OES</code> binding can be queried as
1723: * <code>GL_RENDERBUFFER_BINDING_OES</code>.
1724: *
1725: * @param target the value <code>GL_RENDERBUFFER_OES</code>.
1726: * @param renderbuffer Specifies the name of a renderbuffer.
1727: *
1728: * @exception UnsupportedOperationException if the underlying
1729: * runtime engine does not support the
1730: * <code>OES_framebuffer_object</code> extension.
1731: */
1732: void glBindRenderbufferOES(int target, int renderbuffer);
1733:
1734: /**
1735: * (<code>OES_framebuffer_object</code> extension)
1736: * Delete a renderbuffer.
1737: *
1738: * <p> Renderbuffer objects are deleted by calling
1739: * glDeleteRenderbuffersOES where <code>renderbuffers</code>
1740: * contains <code>n</code> names of renderbuffer objects to be
1741: * deleted. After a renderbuffer object is deleted, it has no
1742: * contents, and its name is again unused. If a renderbuffer that
1743: * is currently bound to <code>GL_RENDERBUFFER_OES</code> is
1744: * deleted, it is as though <code>glBindRenderbufferOES</code> had
1745: * been executed with the <code>target</code>
1746: * <code>GL_RENDERBUFFER_OES</code> and <code>name</code> of zero.
1747: * Additionally, special care must be taken when deleting a
1748: * renderbuffer if the image of the renderbuffer is attached to a
1749: * framebuffer object. Unused names in
1750: * <code>renderbuffers</code> are silently ignored, as is the value
1751: * zero.
1752: *
1753: * @param n the number of renderbuffers to be deleted.
1754: * @param renderbuffers an array of <code>n</code> renderbuffer names.
1755: * @param offset the starting offset within the
1756: * <code>renderbuffers</code> array.
1757: *
1758: * @exception UnsupportedOperationException if the underlying
1759: * runtime engine does not support the
1760: * <code>OES_framebuffer_object</code> extension.
1761: * @exception IllegalArgumentException if <code>renderbuffers</code> is
1762: * <code>null</code>.
1763: * @exception IllegalArgumentException if <code>offset</code> is
1764: * less than 0.
1765: * @exception IllegalArgumentException if <code>renderbuffers.length
1766: * - offset</code> is less than <code>n</code>.
1767: */
1768: void glDeleteRenderbuffersOES(int n, int[] renderbuffers, int offset);
1769:
1770: /**
1771: * (<code>OES_framebuffer_object</code> extension)
1772: * Integer <code>Buffer</code> version of
1773: * <code>glDeleteRenderbuffersOES</code>.
1774: *
1775: * @see #glDeleteRenderbuffersOES(int n, int[] renderbuffers, int offset)
1776: *
1777: * @param n the number of renderbuffers to be deleted.
1778: * @param renderbuffers an <code>IntBuffer</code> containing
1779: * renderbuffer names.
1780: *
1781: * @exception UnsupportedOperationException if the underlying
1782: * runtime engine does not support the
1783: * <code>OES_framebuffer_object</code> extension.
1784: * @exception IllegalArgumentException if <code>renderbuffers</code> is
1785: * <code>null</code>.
1786: * @exception IllegalArgumentException if
1787: * <code>renderbuffers.limit() - renderbuffers.position()</code> is
1788: * less than <code>n</code>.
1789: */
1790: void glDeleteRenderbuffersOES(int n, IntBuffer renderbuffers);
1791:
1792: /**
1793: * (<code>OES_framebuffer_object</code> extension)
1794: * Generate renderbuffer names.
1795: *
1796: * <p> The command <code>glGenRenderbuffersOES</code> returns
1797: * <code>n</code> previously unused renderbuffer object names in
1798: * <code>renderbuffers</code>. These names are marked as used, for
1799: * the purposes of <code>glGenRenderbuffersOES</code> only, but they
1800: * acquire renderbuffer state only when they are first bound, just
1801: * as if they were unused.
1802: *
1803: * @param n the number of renderbuffer names to be generated.
1804: * @param renderbuffers an array to be filled in with <code>n</code>
1805: * renderbuffer names.
1806: * @param offset the starting offset within the
1807: * <code>renderbuffers</code> array.
1808: *
1809: * @exception UnsupportedOperationException if the underlying
1810: * runtime engine does not support the
1811: * <code>OES_framebuffer_object</code> extension.
1812: * @exception IllegalArgumentException if <code>renderbuffers</code> is
1813: * <code>null</code>.
1814: * @exception IllegalArgumentException if <code>offset</code> is
1815: * less than 0.
1816: * @exception IllegalArgumentException if <code>renderbuffers.length
1817: * - offset</code> is less than <code>n</code>.
1818: */
1819: void glGenRenderbuffersOES(int n, int[] renderbuffers, int offset);
1820:
1821: /**
1822: * (<code>OES_framebuffer_object</code> extension)
1823: * Integer <code>Buffer</code> version of
1824: * <code>glGenRenderbuffersOES</code>.
1825: *
1826: * @see #glGenRenderbuffersOES(int n, int[] renderbuffers, int offset)
1827: *
1828: * @param n the number of renderbuffer names to be generated.
1829: * @param renderbuffers an <code>IntBuffer</code> to be filled in
1830: * with <code>n</code> renderbuffer names.
1831: *
1832: * @exception UnsupportedOperationException if the underlying
1833: * runtime engine does not support the
1834: * <code>OES_framebuffer_object</code> extension.
1835: * @exception IllegalArgumentException if <code>renderbuffers</code> is
1836: * <code>null</code>.
1837: * @exception IllegalArgumentException if
1838: * <code>renderbuffers.limit() - renderbuffers.position()</code> is
1839: * less than <code>n</code>.
1840: */
1841: void glGenRenderbuffersOES(int n, IntBuffer renderbuffers);
1842:
1843: /**
1844: * (<code>OES_framebuffer_object</code> extension)
1845: * Establish the layout of a renderbuffer object's image.
1846: *
1847: * <p> The command <code>glRenderbufferStorageOES</code> establishes
1848: * the data storage, format, and dimensions of a renderbuffer
1849: * object's image. <code>target</code> must be
1850: * <code>GL_RENDERBUFFER_OES</code>. <code>internalformat</code>
1851: * must be one of the sized internal formats from the following
1852: * tables which has a base internal format of <code>GL_RGB</code>,
1853: * <code>GL_RGBA</code>, <code>GL_DEPTH_COMPONENT</code>, or
1854: * <code>GL_STENCIL_INDEX</code>.
1855: *
1856: * <p> The following formats are required:
1857: *
1858: * <pre>
1859: * Sized Base Size in
1860: * Internal Format Internal format Bits
1861: * --------------- --------------- ----
1862: * RGB565_OES RGB 16
1863: * RGBA4 RGBA 16
1864: * RGB5_A1 RGBA 16
1865: * DEPTH_COMPONENT_16 DEPTH_COMPONENT 16
1866: * </pre>
1867: *
1868: * <p> The following formats are optional:
1869: *
1870: * <pre>
1871: * Sized Base Size in
1872: * Internal Format Internal format Bits
1873: * --------------- --------------- ----
1874: * RGBA8 RGBA 32
1875: * RGB8 RGB 24
1876: * DEPTH_COMPONENT_24 DEPTH_COMPONENT 24
1877: * DEPTH_COMPONENT_32 DEPTH_COMPONENT 32
1878: * STENCIL_INDEX1_OES STENCIL_INDEX 1
1879: * STENCIL_INDEX4_OES STENCIL_INDEX 4
1880: * STENCIL_INDEX8_OES STENCIL_INDEX 8
1881: * </pre>
1882: *
1883: * <p> The optional formats are described by the
1884: * <code>OES_rgb8_rgba8</code>, <code>OES_depth24</code>,
1885: * <code>OES_depth32</code>, <code>OES_stencil1</code>,
1886: * <code>OES_stencil4</code>, and <code>OES_stencil8</code>
1887: * extensions.
1888: *
1889: * <p> If <code>glRenderbufferStorageOES</code> is called with an
1890: * <code>internalformat</code> value that is not supported by the
1891: * OpenGL ES implementation, a <code>GL_INVALID_ENUM</code> error
1892: * will be generated.
1893: *
1894: * <p> <code>width</code> and
1895: * <code>height</code> are the dimensions in pixels of the
1896: * renderbuffer. If either <code>width</code> or
1897: * <code>height</code> is greater than
1898: * <code>GL_MAX_RENDERBUFFER_SIZE_OES</code>, then the error
1899: * <code>GL_INVALID_VALUE</code> is generated. If the GL is unable
1900: * to create a data store of the requested size, the error
1901: * <code>GL_OUT_OF_MEMORY</code> is
1902: * generated. <code>glRenderbufferStorageOES</code> deletes any
1903: * existing data store for the renderbuffer and the contents of the
1904: * data store after calling <code>glRenderbufferStorageOES</code>
1905: * are undefined.
1906: *
1907: * @param target the value <code>GL_RENDERBUFFER_OES</code>.
1908: * @param internalformat one of <code>GL_RGB</code>,
1909: * <code>GL_RGBA</code>, <code>GL_DEPTH_COMPONENT</code>,
1910: * <code>GL_STENCIL_INDEX</code>, or an internal format that has one
1911: * of those as a base format.
1912: * @param width the width of the image.
1913: * @param height the height of the image.
1914: *
1915: * @exception UnsupportedOperationException if the underlying
1916: * runtime engine does not support the
1917: * <code>OES_framebuffer_object</code> extension.
1918: */
1919: void glRenderbufferStorageOES(int target, int internalformat,
1920: int width, int height);
1921:
1922: /**
1923: * (<code>OES_framebuffer_object</code> extension)
1924: * Query a renderbuffer parameter.
1925: *
1926: * <p> <code>target</code> must be <code>GL_RENDERBUFFER_OES</code>.
1927: * <code>pname</code> must be one of the symbolic values in the
1928: * table below.
1929: *
1930: * <p> If the renderbuffer currently bound to <code>target</code> is
1931: * zero, then <code>GL_INVALID_OPERATION</code> is generated.
1932: *
1933: * <p> Upon successful return from
1934: * <code>glGetRenderbufferParameterivOES</code>, if
1935: * <code>pname</code> is <code>GL_RENDERBUFFER_WIDTH_OES</code>,
1936: * <code>GL_RENDERBUFFER_HEIGHT_OES</code>, or
1937: * <code>GL_RENDERBUFFER_INTERNAL_FORMAT_OES</code>, then
1938: * <code>params</code> will contain the width in pixels, height in
1939: * pixels, or internal format, respectively, of the image of the
1940: * renderbuffer currently bound to <code>target</code>.
1941: *
1942: * <p> Upon successful return from
1943: * <code>glGetRenderbufferParameterivOES</code>, if
1944: * <code>pname</code> is <code>GL_RENDERBUFFER_RED_SIZE_OES</code>,
1945: * <code>GL_RENDERBUFFER_GREEN_SIZE_OES</code>,
1946: * <code>GL_RENDERBUFFER_BLUE_SIZE_OES</code>,
1947: * <code>GL_RENDERBUFFER_ALPHA_SIZE_OES</code>,
1948: * <code>GK_RENDERBUFFER_DEPTH_SIZE_OES</code>, or
1949: * <code>GL_RENDERBUFFER_STENCIL_SIZE_OES</code>, then
1950: * <code>params</code> will contain the actual resolutions, (not the
1951: * resolutions specified when the image array was defined), for the
1952: * red, green, blue, alpha depth, or stencil components,
1953: * respectively, of the image of the renderbuffer currently bound to
1954: * <code>target</code>.
1955: *
1956: * <p> Otherwise, <code>GL_INVALID_ENUM</code> is generated.
1957: *
1958: * <p> The values in the first column of the table below should be
1959: * prefixed with <code>GL_RENDERBUFFER_</code> and suffixed with
1960: * <code>OES</code>. The get command for all values is
1961: * <code>glGetRenderbufferParameterivOES</code>. All take on
1962: * positive integral values.
1963: *
1964: * <pre>
1965: * Get Initial
1966: * Value Value Description
1967: * --------------- ------- ----------------------
1968: * WIDTH 0 width of renderbuffer
1969: *
1970: * HEIGHT 0 height of renderbuffer
1971: *
1972: * INTERNAL_FORMAT GL_RGBA internal format
1973: * of renderbuffer
1974: *
1975: * RED_SIZE 0 size in bits of
1976: * renderbuffer image's
1977: * red component
1978: *
1979: * GREEN_SIZE 0 size in bits of
1980: * renderbuffer image's
1981: * green component
1982: *
1983: * BLUE_SIZE 0 size in bits of
1984: * renderbuffer image's
1985: * blue component
1986: *
1987: * ALPHA_SIZE 0 size in bits of
1988: * renderbuffer image's
1989: * alpha component
1990: *
1991: * DEPTH_SIZE 0 size in bits of
1992: * renderbuffer image's
1993: * depth component
1994: *
1995: * STENCIL_SIZE 0 size in bits of
1996: * renderbuffer image's
1997: * stencil component
1998: * </pre>
1999: *
2000: * @param target the value <code>GL_RENDERBUFFER_OES</code>.
2001: * @param pname one of <code>GL_RENDERBUFFER_WIDTH_OES</code>,
2002: * <code>GL_RENDERBUFFER_HEIGHT_OES</code>,
2003: * <code>GL_RENDERBUFFER_INTERNAL_FORMAT_OES</code>,
2004: * <code>GL_RENDERBUFFER_RED_SIZE_OES</code>,
2005: * <code>GL_RENDERBUFFER_GREEN_SIZE_OES</code>,
2006: * <code>GL_RENDERBUFFER_BLUE_SIZE_OES</code>,
2007: * <code>GL_RENDERBUFFER_ALPHA_SIZE_OES</code>,
2008: * <code>GL_RENDERBUFFER_DEPTH_SIZE_OES</code>, or
2009: * <code>GL_RENDERBUFFER_STENCIL_SIZE_OES</code>.
2010: * @param params an array into which renderbuffer parameters will be
2011: * written.
2012: * @param offset the starting offset within the
2013: * <code>params</code> array.
2014: *
2015: * @exception UnsupportedOperationException if the underlying
2016: * runtime engine does not support the
2017: * <code>OES_framebuffer_object</code> extension.
2018: * @exception IllegalArgumentException if <code>params</code> is
2019: * <code>null</code>.
2020: * @exception IllegalArgumentException if <code>offset</code> is
2021: * less than 0.
2022: * @exception IllegalArgumentException if <code>params.length -
2023: * offset</code> is smaller than the number of values required by
2024: * the parameter.
2025: */
2026: void glGetRenderbufferParameterivOES(int target, int pname,
2027: int[] params, int offset);
2028:
2029: /**
2030: * (<code>OES_framebuffer_object</code> extension)
2031: * Integer <code>Buffer</code> version of
2032: * <code>glGetRenderbufferParameterivOES</code>.
2033: *
2034: * @see #glGetRenderbufferParameterivOES(int target, int pname,
2035: * int[] params, int offset)
2036: *
2037: * @param target the value <code>GL_RENDERBUFFER_OES</code>.
2038: * @param pname one of <code>GL_RENDERBUFFER_WIDTH_OES</code>,
2039: * <code>GL_RENDERBUFFER_HEIGHT_OES</code>,
2040: * <code>GL_RENDERBUFFER_INTERNAL_FORMAT_OES</code>,
2041: * <code>GL_RENDERBUFFER_RED_SIZE_OES</code>,
2042: * <code>GL_RENDERBUFFER_GREEN_SIZE_OES</code>,
2043: * <code>GL_RENDERBUFFER_BLUE_SIZE_OES</code>,
2044: * <code>GL_RENDERBUFFER_ALPHA_SIZE_OES</code>,
2045: * <code>GL_RENDERBUFFER_DEPTH_SIZE_OES</code>, or
2046: * <code>GL_RENDERBUFFER_STENCIL_SIZE_OES</code>.
2047: * @param params an <code>IntBuffer</code> into which renderbuffer
2048: * parameters will be written.
2049: *
2050: * @exception UnsupportedOperationException if the underlying
2051: * runtime engine does not support the
2052: * <code>OES_framebuffer_object</code> extension.
2053: * @exception IllegalArgumentException if <code>params</code> is
2054: * <code>null</code>.
2055: * @exception IllegalArgumentException if
2056: * <code>params.remaining()</code> is smaller than the number of
2057: * values required by the parameter.
2058: */
2059: void glGetRenderbufferParameterivOES(int target, int pname,
2060: IntBuffer params);
2061:
2062: /**
2063: * (<code>OES_framebuffer_object</code> extension) Determine whether a
2064: * token represents a framebuffer.
2065: *
2066: * <p> Returns <code>true</code> if <code>framebuffer</code> is the
2067: * name of a framebuffer object. If <code>framebuffer</code> is
2068: * zero, or if <code>framebuffer</code> is a non-zero value that is
2069: * not the name of a framebuffer object,
2070: * <code>glIsFrambufferOES</code> returns <code>false</code>.
2071: *
2072: * @param framebuffer an integer.
2073: *
2074: * @exception UnsupportedOperationException if the underlying
2075: * runtime engine does not support the
2076: * <code>OES_framebuffer_object</code> extension.
2077: */
2078: boolean glIsFramebufferOES(int framebuffer);
2079:
2080: /**
2081: * (<code>OES_framebuffer_object</code> extension)
2082: * Bind a framebuffer.
2083:
2084: * <p> The operations described in chapter 4 of the OpenGL 1.5
2085: * specification affect the images attached to the framebuffer
2086: * object bound to the target GL_FRAMEBUFFER_OES. By default,
2087: * framebuffer bound to the target GL_FRAMEBUFFER_OES is zero,
2088: * specifying the default implementation dependent framebuffer
2089: * provided by the windowing system. When the framebuffer bound to
2090: * target GL_FRAMEBUFFER_OES is not zero, but instead names a
2091: * application-created framebuffer object, then operations
2092: * affect the application-created framebuffer object
2093: * rather than the default framebuffer.
2094: *
2095: * <p> The namespace for framebuffer objects is the unsigned
2096: * integers, with zero reserved by the GL to refer to the default
2097: * framebuffer. A framebuffer object is created by binding an
2098: * unused name to the target <code>GL_FRAMEBUFFER_OES</code>. The
2099: * binding is effected by calling <code>glBindFramebufferOES</code>
2100: * with <code>target</code> set to <code>GL_FRAMEBUFFER_OES</code>
2101: * and <code>framebuffer</code> set to the unused name. The
2102: * resulting framebuffer object is a new state vector, comprising
2103: * all the state values listed in the table below. There are
2104: * <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> color attachment
2105: * points, plus one each for the depth and stencil attachment
2106: * points.
2107: *
2108: * <code>glBindFramebufferOES</code> may also be used to bind an
2109: * existing framebuffer object to <code>target</code>. If the bind
2110: * is successful no change is made to the state of the bound
2111: * framebuffer object and any previous binding to
2112: * <code>target</code> is broken. The current
2113: * <code>GL_FRAMEBUFFER_OES</code> binding can be queried using
2114: * <code>glGetIntegerv(GL_FRAMEBUFFER_BINDING_OES)</code>.
2115: *
2116: * <p> While a framebuffer object is bound to the target
2117: * <code>GL_FRAMEBUFFER_OES</code>, GL operations on the target to
2118: * which it is bound affect the images attached to the bound
2119: * framebuffer object, and queries of the target to which it is
2120: * bound return state from the bound object. The framebuffer object
2121: * bound to the target <code>GL_FRAMEBUFFER_OES</code> is used as
2122: * the destination of fragment operations and as the source of pixel
2123: * reads such as <code>glReadPixels</code>.
2124: *
2125: * In the initial state, the reserved name zero is bound to the
2126: * target <code>GL_FRAMEBUFFER_OES</code>. There is no
2127: * application-created framebuffer object corresponding to the name
2128: * zero. Instead, the name zero refers to the
2129: * window-system-provided framebuffer. All queries and operations
2130: * on the framebuffer while the name zero is bound to the target
2131: * <code>GL_FRAMEBUFFER_OES</code> operate on this default
2132: * framebuffer. On some implementations, the properties of the
2133: * default window-system-provided framebuffer can change over time
2134: * (e.g., in response to window-system events such as attaching the
2135: * context to a new window-system drawable.)
2136: *
2137: * <p> Application-created framebuffer objects (i.e., those with a
2138: * non-zero name) differ from the default window-system-provided
2139: * framebuffer in a few important ways. First and foremost, unlike
2140: * the window-system-provided framebuffer,
2141: * application-created-framebuffers have modifiable attachment
2142: * points for each logical buffer in the framebuffer.
2143: * Framebuffer-attachable images can be attached to and detached
2144: * from these attachment points. Also, the size and format of the
2145: * images attached to application-created framebuffers are
2146: * controlled entirely within the GL interface, and are not affected
2147: * by window-system events, such as pixel format selection, window
2148: * resizes, and display mode changes.
2149: *
2150: * <p> Additionally, when rendering to or reading from an
2151: * application created-framebuffer object:
2152: *
2153: * <ul>
2154: *
2155: * <li>The pixel ownership test always succeeds. In other words,
2156: * application-created framebuffer objects own all of their
2157: * pixels.</li>
2158: *
2159: * <li>There are no visible color buffer bitplanes. This means
2160: * there is no color buffer corresponding to the back, front, left,
2161: * or right color bitplanes.</li>
2162: *
2163: * <li>The only color buffer bitplanes are the ones defined by the
2164: * framebuffer attachment points named
2165: * <code>COLOR_ATTACHMENT0_OES</code> through
2166: * <code>COLOR_ATTACHMENT</code><i>n</i><code>_OES</code>.</li>
2167: *
2168: * <li>The only depth buffer bitplanes are the ones defined by the
2169: * framebuffer attachment point
2170: * <code>DEPTH_ATTACHMENT_OES</code>.</li>
2171: *
2172: * <li>The only stencil buffer bitplanes are the ones defined by the
2173: * framebuffer attachment point
2174: * <code>STENCIL_ATTACHMENT_OES</code>.</li>
2175: *
2176: * </ul>
2177: *
2178: * @param target the value <code>GL_FRAMEBUFFER_OES</code>.
2179: * @param framebuffer the framebuffer to be bound.
2180: *
2181: * @exception UnsupportedOperationException if the underlying
2182: * runtime engine does not support the
2183: * <code>OES_framebuffer_object</code> extension.
2184: */
2185: void glBindFramebufferOES(int target, int framebuffer);
2186:
2187: /**
2188: * (<code>OES_framebuffer_object</code> extension)
2189: * Delete framebuffer objects.
2190: *
2191: * <p> Framebuffer objects are deleted by calling
2192: * <code>glDeleteFramebuffersOES</code>. <code>framebuffers</code>
2193: * contains <code>n</code> names of framebuffer objects to be
2194: * deleted. After a framebuffer object is deleted, it has no
2195: * attachments, and its name is again unused. If a framebuffer that
2196: * is currently bound to the target <code>GL_FRAMEBUFFER_OES</code>
2197: * is deleted, it is as though <code>glBindFramebufferOES</code> had
2198: * been executed with the <code>target</code> of
2199: * <code>GL_FRAMEBUFFER_OES</code> and <code>framebuffer</code> of
2200: * zero. Unused names in <code>framebuffers</code> are silently
2201: * ignored, as is the value zero.
2202: *
2203: * @param n the number of framebuffers to be deleted.
2204: * @param framebuffers a list of framebuffers.
2205: * @param offset the starting offset within the
2206: * <code>framebuffers</code> array.
2207: *
2208: * @exception UnsupportedOperationException if the underlying
2209: * runtime engine does not support the
2210: * <code>OES_framebuffer_object</code> extension.
2211: * @exception IllegalArgumentException if <code>framebuffers</code> is
2212: * <code>null</code>.
2213: * @exception IllegalArgumentException if <code>offset</code> is
2214: * less than 0.
2215: * @exception IllegalArgumentException if <code>framebuffers.length
2216: * - offset</code> is less than <code>n</code>.
2217: */
2218: void glDeleteFramebuffersOES(int n, int[] framebuffers, int offset);
2219:
2220: /**
2221: * (<code>OES_framebuffer_object</code> extension)
2222: * Integer <code>Buffer</code> version of
2223: * <code>glDeleteFramebuffersOES</code>.
2224: *
2225: * @see #glDeleteFramebuffersOES(int n, int[] framebuffers, int offset)
2226: *
2227: * @param n
2228: * @param framebuffers
2229: *
2230: * @exception UnsupportedOperationException if the underlying
2231: * runtime engine does not support the
2232: * <code>OES_framebuffer_object</code> extension.
2233: * @exception IllegalArgumentException if <code>framebuffers</code> is
2234: * <code>null</code>.
2235: * @exception IllegalArgumentException if <code>framebuffers.limit()
2236: * - framebuffers.position()</code> is less than <code>n</code>.
2237: */
2238: void glDeleteFramebuffersOES(int n, IntBuffer framebuffers);
2239:
2240: /**
2241: * (<code>OES_framebuffer_object</code> extension)
2242: * Generate framebuffer names.
2243: *
2244: * <p> The command <code>glGenFramebuffersOES</code> returns
2245: * <code>n</code> previously unused framebuffer object names in
2246: * <code>ids</code>. These names are marked as used, for the
2247: * purposes of <code>glGenFramebuffersOES</code> only, but they
2248: * acquire state and type only when they are first bound, just as if
2249: * they were unused.
2250: *
2251: * @param n the number of framebuffer names to be generated.
2252: * @param framebuffers an array to be filled in with <code>n</code>
2253: * framebuffer names.
2254: * @param offset the starting offset within the
2255: * <code>framebuffers</code> array.
2256: *
2257: * @exception UnsupportedOperationException if the underlying
2258: * runtime engine does not support the
2259: * <code>OES_framebuffer_object</code> extension.
2260: * @exception IllegalArgumentException if <code>framebuffers</code> is
2261: * <code>null</code>.
2262: * @exception IllegalArgumentException if <code>offset</code> is
2263: * less than 0.
2264: * @exception IllegalArgumentException if <code>framebuffers.length
2265: * - offset</code> is less than <code>n</code>.
2266: */
2267: void glGenFramebuffersOES(int n, int[] framebuffers, int offset);
2268:
2269: /**
2270: * (<code>OES_framebuffer_object</code> extension)
2271: * Integer <code>Buffer</code> version of
2272: * <code>glGenFramebuffersOES</code>.
2273: *
2274: * @see #glGenFramebuffersOES(int n, int[] framebuffers, int offset)
2275: *
2276: * @param n the number of framebuffer names to be generated.
2277: * @param framebuffers an <code>IntBuffer</code> to be filled in
2278: * with <code>n</code> framebuffer names.
2279: *
2280: * @exception UnsupportedOperationException if the underlying
2281: * runtime engine does not support the
2282: * <code>OES_framebuffer_object</code> extension.
2283: * @exception IllegalArgumentException if <code>framebuffers</code> is
2284: * <code>null</code>.
2285: * @exception IllegalArgumentException if <code>framebuffers.limit()
2286: * - framebuffers.position()</code> is less than <code>n</code>.
2287: */
2288: void glGenFramebuffersOES(int n, IntBuffer framebuffers);
2289:
2290: /**
2291: * (<code>OES_framebuffer_object</code> extension)
2292: * Check the status of a framebuffer.
2293: *
2294: * <p> Returns one of <code>GL_FRAMEBUFFER_COMPLETE_OES</code>,
2295: * <code>GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES</code>,
2296: * <code>GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES</code>,
2297: * <code>GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES</code>,
2298: * <code>GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES</code>,
2299: * <code>GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES</code>, or
2300: * <code>GL_FRAMEBUFFER_UNSUPPORTED_OES</code>.
2301: *
2302: * @param target a framebuffer.
2303: *
2304: * @exception UnsupportedOperationException if the underlying
2305: * runtime engine does not support the
2306: * <code>OES_framebuffer_object</code> extension.
2307: */
2308: int glCheckFramebufferStatusOES(int target);
2309:
2310: /**
2311: * (<code>OES_framebuffer_object</code> extension)
2312: * Attach an image from a texture object to a framebuffer.
2313: *
2314: * <p> To render directly into a texture image, a specified image from a
2315: * texture object can be attached as one of the logical buffers of the
2316: * currently bound framebuffer object by calling this method.
2317: *
2318: * <p> GL_INVALID_OPERATION is generated if the current value of
2319: * <code>GL_FRAMEBUFFER_BINDING_OES</code> is zero when
2320: * <code>glFramebufferTexture2DOES</code> is called.
2321: * <code>attachment</code> must be one of the attachment points of
2322: * the framebuffer, either
2323: * <code>GL_COLOR_ATTACHMENT</code><i>n</i><code>_OES</code> (where
2324: * <i>n</i> is from 0 to <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> -
2325: * 1), <code>GL_DEPTH_ATTACHMENT_OES</code>, or
2326: * <code>GL_STENCIL_ATTACHMENT_OES</code>.
2327: *
2328: * <p> If <code>texture</code> is zero, then <code>textarget</code>
2329: * and <code>level</code> are ignored. If <code>texture</code> is
2330: * not zero, then <code>texture</code> must either name an existing
2331: * texture object with an target of <code>textarget</code>, or
2332: * <code>texture</code> must name an existing cube map texture and
2333: * <code>textarget</code> must be one of:
2334: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>,
2335: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>,
2336: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>,
2337: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>,
2338: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>, or
2339: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>. Otherwise,
2340: * <code>GL_INVALID_OPERATION</code> is generated.
2341: *
2342: * <p> <code>level</code> specifies the mipmap level of the texture
2343: * image to be attached to the framebuffer and must be 0 (indicating
2344: * the base MIPmap level).
2345: *
2346: * <p> If <code>textarget</code> is one of
2347: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>,
2348: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>,
2349: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>,
2350: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>,
2351: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>, or
2352: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>, then
2353: * <code>level</code> must be greater than or equal to zero and less
2354: * than or equal to log base 2 of
2355: * <code>GL_MAX_CUBE_MAP_TEXTURE_SIZE</code>. For all other values of
2356: * <code>textarget</code>, <code>level</code> must be greater than or
2357: * equal to zero and no larger than log base 2 of
2358: * <code>GL_MAX_TEXTURE_SIZE</code>. Otherwise,
2359: * <code>GL_INVALID_VALUE</code> is generated.
2360: *
2361: * <p> If <code>texture</code> is not zero, then
2362: * <code>textarget</code> must be one of:
2363: * <code>GL_TEXTURE_2D</code>,
2364: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>,
2365: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>,
2366: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>,
2367: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>,
2368: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>, or
2369: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>.
2370: *
2371: * <p> If <code>texture</code> is not zero, and if
2372: * <code>glFramebufferTexture2DOES</code> is successful, then the
2373: * specified texture image will be used as the logical buffer
2374: * identified by <code>attachment</code> of the framebuffer currently
2375: * bound to <code>target</code>. The value of
2376: * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES</code> for the
2377: * specified attachment point is set to <code>GL_TEXTURE</code> and
2378: * the value of
2379: * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code> is set to
2380: * <texture>. Additionally, the value of
2381: * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES</code> for the
2382: * named attachment point is set to <code>level</code>. If
2383: * <code>texture</code> is a cubemap texture then, the value of
2384: * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES</code>
2385: * the named attachment point is set to <code>textarget</code>. All
2386: * other state values of the attachment point specified by
2387: * <code>attachment</code> are set to their default values listed in
2388: * the table below. No change is made to the state of the texture
2389: * object, and any previous attachment to the <code>attachment</code>
2390: * logical buffer of the framebuffer object bound to framebuffer
2391: * <code>target</code> is broken. If, on the other hand, the
2392: * attachment is not successful, then no change is made to the state
2393: * of either the texture object or the framebuffer object.
2394: *
2395: * <p> Calling <code>glFramebufferTexture2DOES</code> with
2396: * <code>texture</code> name zero will detach the image identified by
2397: * <code>attachment</code>, if any, in the framebuffer currently
2398: * bound to <code>target</code>. All state values of the attachment
2399: * point specified by <code>attachment</code> are set to their
2400: * default values listed in the table below.
2401: *
2402: * <p> If a texture object is deleted while its image is attached to
2403: * one or more attachment points in the currently bound framebuffer,
2404: * then it is as if <code>glFramebufferTexture2DOES</code> had been
2405: * called, with a <code>texture</code> of 0, for each attachment
2406: * point to which this image was attached in the currently bound
2407: * framebuffer. In other words, this texture image is first detached
2408: * from all attachment points in the currently bound framebuffer.
2409: * Note that the texture image is specifically <b>not</b> detached from
2410: * any other framebuffer objects. Detaching the texture image from
2411: * any other framebuffer objects is the responsibility of the
2412: * application.
2413: *
2414: * <p> The entire texture image, including border texels, if any, can be
2415: * addressed with window-coordinates in the following range:
2416: *
2417: * <pre>
2418: * 0 <= window_x < (texture_width + (2 * border)),
2419: * </pre>
2420: * and
2421: * <pre>
2422: * 0 <= window_y < (texture_height + (2 * border))
2423: * </pre>
2424: *
2425: * <p> The values in the first column of the table below should be
2426: * prefixed with <code>GL_RENDERBUFFER_</code> and suffixed with
2427: * <code>OES</code>. The get command for all values is
2428: * <code>glGetRenderbufferParameterivOES</code>. All take on
2429: * positive integral values.
2430: *
2431: * <pre>
2432: * Get Initial
2433: * Value Value Description
2434: * --------------- ------- ----------------------
2435: * ATTACHMENT_OBJECT_TYPE GL_NONE type of
2436: * image attached to
2437: * framebuffer attachment
2438: * point
2439: *
2440: * ATTACHMENT_OBJECT_NAME 0 name of object
2441: * attached to
2442: * framebuffer attachment
2443: * point
2444: *
2445: * ATTACHMENT_TEXTURE_LEVEL 0 mipmap level of
2446: * texture image
2447: * attached, if object
2448: * attached is texture.
2449: *
2450: * ATTACHMENT_TEXTURE_ GL_TEXTURE_ cubemap face of
2451: * CUBE_MAP_FACE CUBE_MAP_ texture image
2452: * POSITIVE_X attached, if object
2453: * attached is cubemap
2454: * texture.
2455: * </pre>
2456: *
2457: * @param target the value <code>GL_FRAMEBUFFER_OES</code>.
2458: * @param attachment the framebuffer attachment, one of
2459: * <code>GL_COLOR_ATTACHMENT_</code><i>n</i><code>_OES</code> (where
2460: * <i>n</i> is from 0 to <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> -
2461: * 1), <code>GL_DEPTH_ATTACHMENT_OES</code>, or
2462: * <code>GL_STENCIL_ATTACHMENT_OES</code>.
2463: * @param textarget one of <code>GL_TEXTURE_2D</code>,
2464: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>,
2465: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>,
2466: * <code>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>,
2467: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>,
2468: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>, or
2469: * <code>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>.
2470: * @param texture the texture, or zero.
2471: * @param level the texture MIPmap level, which must be 0.
2472: *
2473: * @exception UnsupportedOperationException if the underlying
2474: * runtime engine does not support the
2475: * <code>OES_framebuffer_object</code> extension.
2476: */
2477: void glFramebufferTexture2DOES(int target, int attachment,
2478: int textarget, int texture, int level);
2479:
2480: /**
2481: * (<code>OES_framebuffer_object</code> extension)
2482: * Attach a renderbuffer to a framebuffer.
2483: *
2484: * <p> A renderbuffer can be attached as one of the logical buffers
2485: * of the currently bound framebuffer object by calling
2486: * <code>glFramebufferRenderbufferOES</code>. <code>target</code>
2487: * must be <code>GL_FRAMEBUFFER_OES</code>.
2488: * <code>GL_INVALID_OPERATION</code> is generated if the current
2489: * value of <code>GL_FRAMEBUFFER_BINDING_OES</code> is zero when
2490: * <code>glFramebufferRenderbufferOES</code> is called.
2491: * <code>attachment</code> should be set to one of the attachment
2492: * points of the framebuffer, one of
2493: * <code>GL_COLOR_ATTACHMENT</code><i>n</i><code>_OES</code> (where
2494: * <i>n</i> is from 0 to <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> -
2495: * 1), <code>GL_DEPTH_ATTACHMENT_OES</code>, or
2496: * <code>GL_STENCIL_ATTACHMENT_OES</code>.
2497: * <code>renderbuffertarget</code> must be
2498: * <code>GL_RENDERBUFFER_OES</code> and <code>renderbuffer</code>
2499: * should be set to the name of the renderbuffer object to be
2500: * attached to the framebuffer. <code>renderbuffer</code> must be
2501: * either zero or the name of an existing renderbuffer object of
2502: * type <code>renderbuffertarget</code>, otherwise
2503: * <code>GL_INVALID_OPERATION</code> is generated. If
2504: * <code>renderbuffer</code> is zero, then the value of
2505: * <code>renderbuffertarget</code> is ignored.
2506: *
2507: * <p> If <code>renderbuffer</code> is not zero and if
2508: * <code>glFramebufferRenderbufferOES</code> is successful, then the
2509: * renderbuffer named <code>renderbuffer</code> will be used as the
2510: * logical buffer identified by <code>attachment</code> of the
2511: * framebuffer currently bound to <code>target</code>. The value of
2512: * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES</code> for the
2513: * specified attachment point is set to
2514: * <code>GL_RENDERBUFFER_OES</code> and the value of
2515: * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code> is set to
2516: * <code>renderbuffer</code>. All other state values of the
2517: * attachment point specified by <code>attachment</code> are set to
2518: * their default values listed in the table below. No change is made
2519: * to the state of the renderbuffer object and any previous
2520: * attachment to the <code>attachment</code> logical buffer of the
2521: * framebuffer object bound to framebuffer <code>target</code> is
2522: * broken. If, on the other hand, the attachment is not successful,
2523: * then no change is made to the state of either the renderbuffer
2524: * object or the framebuffer object.
2525: *
2526: * <p> Calling <code>glFramebufferRenderbufferOES</code> with the
2527: * <code>renderbuffer</code> name zero will detach the image, if
2528: * any, identified by <code>attachment</code>, in the framebuffer
2529: * currently bound to <code>target</code>. All state values of the
2530: * attachment point specified by <code>attachment</code> in the
2531: * object bound to <code>target</code> are set to their default
2532: * values listed in the table below.
2533: *
2534: * <p> If a renderbuffer object is deleted while its image is
2535: * attached to one or more attachment points in the currently bound
2536: * framebuffer, then it is as if
2537: * <code>glFramebufferRenderbufferOES</code> had been called, with a
2538: * <code>renderbuffer</code> of 0, for each attachment point to
2539: * which this image was attached in the currently bound framebuffer.
2540: * In other words, this renderbuffer image is first detached from
2541: * all attachment points in the currently bound framebuffer. Note
2542: * that the renderbuffer image is specifically *not* detached from
2543: * any non-bound framebuffers. Detaching the image from any
2544: * non-bound framebuffers is the responsibility of the application.
2545: *
2546: * <p> The values in the first column of the table below should be
2547: * prefixed with <code>GL_RENDERBUFFER_</code> and suffixed with
2548: * <code>OES</code>. The get command for all values is
2549: * <code>glGetRenderbufferParameterivOES</code>. All take on
2550: * positive integral values.
2551: *
2552: * <pre>
2553: * Get Initial
2554: * Value Value Description
2555: * --------------- ------- ----------------------
2556: * ATTACHMENT_OBJECT_TYPE GL_NONE type of
2557: * image attached to
2558: * framebuffer attachment
2559: * point
2560: *
2561: * ATTACHMENT_OBJECT_NAME 0 name of object
2562: * attached to
2563: * framebuffer attachment
2564: * point
2565: *
2566: * ATTACHMENT_TEXTURE_LEVEL 0 mipmap level of
2567: * texture image
2568: * attached, if object
2569: * attached is texture.
2570: *
2571: * ATTACHMENT_TEXTURE_ GL_TEXTURE_ cubemap face of
2572: * CUBE_MAP_FACE CUBE_MAP_ texture image
2573: * POSITIVE_X attached, if object
2574: * attached is cubemap
2575: * texture.
2576: * </pre>
2577: *
2578: * @param target the value <code>GL_FRAMEBUFFER_OES</code>.
2579: * @param attachment one of
2580: * <code>GL_COLOR_ATTACHMENT</code><i>n</i><code>_OES</code> (where
2581: * <i>n</i> is from 0 to <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> -
2582: * 1), <code>GL_DEPTH_ATTACHMENT_OES</code>, or
2583: * <code>GL_STENCIL_ATTACHMENT_OES</code>.
2584: * @param renderbuffertarget the value
2585: * <code>GL_RENDERBUFFER_OES</code>.
2586: * @param renderbuffer the renderbuffer to be attached to the framebuffer.
2587: *
2588: * @exception UnsupportedOperationException if the underlying
2589: * runtime engine does not support the
2590: * <code>OES_framebuffer_object</code> extension.
2591: */
2592: void glFramebufferRenderbufferOES(int target, int attachment,
2593: int renderbuffertarget, int renderbuffer);
2594:
2595: /**
2596: * (<code>OES_framebuffer_object</code> extension)
2597: * Query the value of a framebuffer attachment parameter.
2598: *
2599: * <p> <code>target</code> must be <code>GL_FRAMEBUFFER_OES</code>.
2600: * <code>attachment</code> must be one of the attachment points of
2601: * the framebuffer, either <code>GL_COLOR_ATTACHMENT</code><i>n</i><code>_OES</code> (where
2602: * <i>n</i> is from 0 to <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> -
2603: * 1), <code>GL_DEPTH_ATTACHMENT_OES</code>, or
2604: * <code>GL_STENCIL_ATTACHMENT_OES</code>.
2605: * <code>pname</code> must be one of the following:
2606: * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES</code>,
2607: * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code>,
2608: * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES</code>, or
2609: * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES</code>.
2610: *
2611: * <p> If the framebuffer currently bound to <code>target</code> is
2612: * zero, then <code>GL_INVALID_OPERATION</code> is generated.
2613: *
2614: * <p> Upon successful return from
2615: * <code>glGetFramebufferAttachmentParameterivOES</code>, if
2616: * <code>pname</code> is
2617: * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES</code>, then
2618: * <code>param</code> will contain one of <code>GL_NONE</code>,
2619: * <code>GL_TEXTURE</code>, or <code>GL_RENDERBUFFER_OES</code>,
2620: * identifying the type of object which contains the attached image.
2621: *
2622: * <p> If the value of GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES is
2623: * <code>GL_RENDERBUFFER_OES</code>, then:
2624: *
2625: * <ul> <li>If <code>pname</code> is
2626: * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code>,
2627: * <code>params</code> will contain the name of the renderbuffer
2628: * object which contains the attached image.</li>
2629: *
2630: * <li>Otherwise, <code>GL_INVALID_ENUM</code> is generated.</li>
2631: * </ul>
2632: *
2633: * <p> If the value of
2634: * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES</code> is
2635: * <code>GL_TEXTURE</code>, then:
2636: *
2637: * <ul>
2638: *
2639: * <li>If <pname> is
2640: * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code>, then
2641: * <params> will contain the name of the texture object which
2642: * contains the attached image.</li>
2643: *
2644: * <li>If <pname> is
2645: * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES</code>, then
2646: * <params> will contain the mipmap level of the texture object
2647: * which contains the attached image.</li>
2648: *
2649: * <li>If <pname> is
2650: * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES</code>
2651: * and the texture object named
2652: * <code>FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code> is a cube map
2653: * texture, then <params> will contain the cube map face of the
2654: * cubemap texture object which contains the attached image.
2655: * Otherwise <params> will contain the value zero.</li>
2656: *
2657: * <li>Otherwise, <code>GL_INVALID_ENUM</code> is generated.</li>
2658: *
2659: * </ul>
2660: *
2661: * @param target the value <code>GL_FRAMEBUFFER_OES</code>.
2662: * @param attachment one of
2663: * <code>GL_COLOR_ATTACHMENT</code><i>n</i><code>_OES</code> (where
2664: * <i>n</i> is from 0 to <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> -
2665: * 1), <code>GL_DEPTH_ATTACHMENT_OES</code>, or
2666: * <code>GL_STENCIL_ATTACHMENT_OES</code>.
2667: * @param pname one of
2668: * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES</code>,
2669: * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code>,
2670: * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES</code>, or
2671: * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES</code>.
2672: * @param params an array to which the query results will be written.
2673: * @param offset the starting offset within the
2674: * <code>params</code> array.
2675: *
2676: * @exception UnsupportedOperationException if the underlying
2677: * runtime engine does not support the
2678: * <code>OES_framebuffer_object</code> extension.
2679: * @exception IllegalArgumentException if <code>params</code> is
2680: * <code>null</code>.
2681: * @exception IllegalArgumentException if <code>offset</code> is
2682: * less than 0.
2683: * @exception IllegalArgumentException if <code>params.length -
2684: * offset</code> is smaller than the number of values required by
2685: * the parameter.
2686: */
2687: void glGetFramebufferAttachmentParameterivOES(int target,
2688: int attachment, int pname, int[] params, int offset);
2689:
2690: /**
2691: * (<code>OES_framebuffer_object</code> extension)
2692: * Integer <code>Buffer</code> version of
2693: * <code>glGetFramebufferAttachmentParameterivOES</code>.
2694: *
2695: * @see #glGetFramebufferAttachmentParameterivOES(int target, int
2696: * attachment, int pname, int[] params, int offset)
2697: *
2698: * @param target the value <code>GL_FRAMEBUFFER_OES</code>.
2699: * @param attachment one of
2700: * <code>GL_COLOR_ATTACHMENT</code><i>n</i><code>_OES</code> (where
2701: * <i>n</i> is from 0 to <code>GL_MAX_COLOR_ATTACHMENTS_OES</code> -
2702: * 1), <code>GL_DEPTH_ATTACHMENT_OES</code>, or
2703: * <code>GL_STENCIL_ATTACHMENT_OES</code>.
2704: * @param pname one of
2705: * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES</code>,
2706: * <code>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES</code>,
2707: * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES</code>, or
2708: * <code>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES</code>.
2709: * @param params an <code>IntBuffer</code> to which the query
2710: * results will be written.
2711: *
2712: * @exception UnsupportedOperationException if the underlying
2713: * runtime engine does not support the
2714: * <code>OES_framebuffer_object</code> extension.
2715: * @exception IllegalArgumentException if <code>params</code> is
2716: * <code>null</code>.
2717: * @exception IllegalArgumentException if
2718: * <code>params.remaining()</code> is smaller than the number of
2719: * values required by the parameter.
2720: */
2721: void glGetFramebufferAttachmentParameterivOES(int target,
2722: int attachment, int pname, IntBuffer params);
2723:
2724: /**
2725: * (<code>OES_framebuffer_object</code> extension) Generate mipmaps
2726: * manually.
2727: *
2728: * <p> <code>target</code> is one of <code>TEXTURE_2D</code> or
2729: * <code>TEXTURE_CUBE_MAP</code>. Mipmap generation affects the
2730: * texture image attached to <code>target</code>. For cube map
2731: * textures, <code>INVALID_OPERATION</code> is generated if the
2732: * texture bound to <code>target</code> is not cube complete.
2733: *
2734: * @param target one of <code>TEXTURE_2D</code> or
2735: * <code>TEXTURE_CUBE_MAP</code>.
2736: *
2737: * @exception UnsupportedOperationException if the underlying
2738: * runtime engine does not support the
2739: * <code>OES_framebuffer_object</code> extension.
2740: */
2741: void glGenerateMipmapOES(int target);
2742: }
|