Name

    OES_texture_half_float_linear
    OES_texture_float_linear

Name Strings

    GL_OES_texture_half_float_linear, GL_OES_texture_float_linear

Contact


Notice

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

Specification Update Policy

    Khronos-approved extension specifications are updated in response to
    issues and bugs prioritized by the Khronos OpenGL ES Working Group. For
    extensions which have been promoted to a core Specification, fixes will
    first appear in the latest version of that core Specification, and will
    eventually be backported to the extension document. This policy is
    described in more detail at
        https://www.khronos.org/registry/OpenGL/docs/update_policy.php

IP Status

    Please refer to the ARB_texture_float extension.

Status

    Ratified by the Khronos BOP, July 22, 2005.

Version

    Revision 3, September 21, 2018

Number

    OpenGL ES Extension #35

Dependencies

    This extension is written against the OpenGL ES 2.0 Specification.

    This extension is derived from the ARB_texture_float extension.

    Either
     - OES_texture_half_float and OES_texture_float are required.
    or
     - OpenGL ES 3.0 is required.

Overview

    These extensions expand upon the OES_texture_half_float and
    OES_texture_float extensions by allowing support for LINEAR
    magnification filter and LINEAR, NEAREST_MIPMAP_LINEAR,
    LINEAR_MIPMAP_NEAREST and LINEAR_MIPMAP_NEAREST minification
    filters.

    When implemented against OpenGL ES 3.0 or later versions, the
    existing sized 32-bit floating-point formats become texture-filterable,
    but no new formats are added.


(  Only when implemented against OpenGL ES 3.0  )

Additions to Chapter 3.8.3 of the OpenGL ES 3.0 Specification
(Texture Image Specification)

    Modify Table 3.13, Correspondence of sized internal color formats to base internal format:

    Check the ``Texture-filterable'' column for the R32F, RG32F, RGB32F, and RGBA32F formats.


Issues

   (1) Can you explain the interactions with OpenGL ES 3.x in more detail?

      OES_texture_float was written against OpenGL ES 2.0 and adds a set of
      new unsized formats, including floating-point versions of LUMINANCE and
      LUMINANCE_ALPHA formats.

      OES_texture_float_linear and OES_texture_half_float_linear makes these
      formats filterable for FLOAT and HALF_FLOAT_OES types, respectively.

      OpenGL ES 3.0 added sized internal formats. The unsized formats and
      the LUMINANCE formats are considered legacy formats. Floating point
      versions of these formats were therefore not added in OpenGL ES 3.0.

      Further, OpenGL ES 3.0 requires that the required floating-point
      formats with 16-bits per component ('half-float') are filterable, but
      does not support filtering for floating-point formats with 32-bits per
      component.

      Some OpenGL ES 3.0 implementations want a way to indicate that the
      required floating-point formats with 32-bit per component are also
      filterable _without_ adding the additional unsized formats from
      OES_texture_float. This is achieved by exposing this extension without
      exposing OES_texture_float.

      For an OpenGL ES 3.0 implementation, the following holds for the
      combination of the OES_texture_float, OES_texture_float_linear,
      and OES_texture_half_float_linear extensions:

        - If none of these extensions are supported:
           - floating-point formats with 32-bit per component are not filterable
           - floating-point formats with 16-bit per component are filterable

        - If OES_texture_float_linear is supported:
           - all floating-point formats in Table 3.13 are filterable

        - If OES_texture_float and OES_texture_float_linear are supported:
           - all floating-point formats in Table 3.13 are filterable
           - all formats of type FLOAT added by OES_texture_float are filterable

        - If OES_texture_half_float and OES_texture_half_float_linear are
           supported:
           - all floating-point formats in Table 3.13 are filterable
           - all formats of type HALF_FLOAT_OES added by OES_texture_half_float
             are filterable

New Procedures and Functions

   None

New Tokens

   None

Revision History

    07/06/2005  0.1   Original draft

    10/29/2014  2     Add interactions with ES 3.0/3.1.

    09/21/2018  3     Clarified interactions with ES 3.x.
