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
