Name

    OES_fragment_precision_high

Name Strings

    GL_OES_fragment_precision_high

Contact

    Jon Leech (jon 'at' alumni.caltech.edu)

Notice

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

IP Status

    None.

Status

    Withdrawn by vote of the OpenGL ES Working Group, April 24, 2008.
    Ratified by the Khronos BOP, July 22, 2005.

Version

    Last Modifed Date: April 24, 2008

Number

    OpenGL ES Extension #28

Dependencies

    OpenGL ES 2.0 is required.

Overview

    This extension has been withdrawn. See the specification of
    GetShaderPrecisionFormat in section 6.1.8 of the OpenGL ES 2.0
    Specification to determine within the API if high-precision fragment
    shader varyings are supported by the implementation.

Issues

    None

New Tokens

    None.

New Procedures and Functions

    None.

Errors

    None.

New State

    None.

Revision History

    4/24/2008   Jon Leech       Withdraw the extension and refer to ES 2.0
                                instead.
    7/6/2005    Aaftab Munshi   Created the extension
