Name

    OES_element_index_uint

Name Strings

    GL_OES_element_index_uint

Contact

    Aaftab Munshi (amunshi@ati.com)

Notice

    Copyright (c) 2005-2013 The Khronos Group Inc. Copyright terms at
        http://www.khronos.org/registry/speccopyright.html

IP Status

    None.

Status

    Ratified by the Khronos BOP, July 22, 2005.    

Version

    Last Modifed Date: November 5, 2007

Number

    OpenGL ES Extension #26    

Dependencies

    OpenGL ES 1.0 is required.

Overview

    OpenGL ES 1.0 supports DrawElements with <type> value of
    UNSIGNED_BYTE and UNSIGNED_SHORT.  This extension adds
    support for UNSIGNED_INT <type> values.

Issues

 
New Tokens

    Accepted by the <type> parameter of DrawElements:

        UNSIGNED_INT                0x1405

New Procedures and Functions

    None.

Errors

    None.

New State

    None.

Revision History

    11/05/2007    Benj Lipchak     Change API version requirement
    07/06/2005    Aaftab Munshi    Created the extension
