Name

    CHROMIUM_texture_filtering_hint

Name Strings

    GL_CHROMIUM_texture_filtering_hint

Contributors

    Alexis Hetu, Google Inc.
    Nicolas Capens, Google Inc.
    Shannon Woods, Google Inc.

Contact

    Alexis Hetu, Google Inc. (sugoi 'at' chromium 'dot' org)

Version

    Last Modifed Date: July 18, 2017

Dependencies

    This extension is written against the OpenGL ES 2.0 specification.

    OpenGL ES 2.0 is required.

Overview

    This extension defines a way to request high precision texture filtering
    using a new value to Hint.

    When this extension is enabled, TEXTURE_FILTERING_HINT_CHROMIUM can be used
    by the implementation as a means to distinguish between a performance
    focused implementation, using FASTEST, or a precision focused
    implementation, using NICEST.

    Like other hints, either option is spec compliant and the behavior of
    DONT_CARE is implementation specific.

New Tokens

    Accepted by the <pname> parameter of GetIntegerv, GetFloatv and GetBooleanv
    and by the <target> parameter of Hint:

    TEXTURE_FILTERING_HINT_CHROMIUM      0x8AF0

New Procedures and Functions

    None.

Errors

    None.

New State

    None.

Issues

    1) When does the hint take effect?

       At the time of the next draw call, and all subsequent draw calls.

    2) Does the first draw call after the filtering hint is changed use the
       updated filtering method?

       Yes

    3) Can I switch it back and forth between every draw call, multiple times
       during a single frame?

       Yes

    4) Do program objects which were created before the filtering hint was
       changed and which contain sampling instructions use the filtering method
       from when they were created, or the method at the time of draw call?

       At the time of draw call.

Revision History

    2/7/2014    Documented the extension

