text: Name
  
      ARB_texture_border_clamp
  
  Name Strings
  
      GL_ARB_texture_border_clamp
  
  Contact
  
      Patrick R. Brown, Intel Corporation (patrick.r.brown 'at' intel.com)
  
  Notice
  
      Copyright (c) 2000-2013 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 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
  
  Status
  
      Complete.  Approved by the ARB, 20 June 2000
  
  Version
  
      1.0, 22 June 2000
  
  Number
  
      ARB Extension #13
  
  Dependencies
  
      OpenGL 1.0 is required.
  
      This extension is written against the OpenGL 1.2.1 Specification.
  
      This extension is based on and intended to replace
      GL_SGIS_texture_border_clamp.
  
  Overview
  
      The base OpenGL provides clamping such that the texture coordinates are
      limited to exactly the range [0,1].  When a texture coordinate is clamped
      using this algorithm, the texture sampling filter straddles the edge of
      the texture image, taking 1/2 its sample values from within the texture
      image, and the other 1/2 from the texture border.  It is sometimes
      desirable for a texture to be clamped to the border color, rather than to
      an average of the border and edge colors.
  
      This extension defines an additional texture clamping algorithm.
      CLAMP_TO_BORDER_ARB clamps texture coordinates at all mipmap levels such
      that NEAREST and LINEAR filters return only the color of the border
      texels.
  
  IP Status
  
      No known IP issues.
  
  Issues
  
      (1) Is this formulation correct for higher-order texture filters 
          (e.g., cubic or anisotropic filters)?
          
         RESOLVED:  No.  A more appropriate formulation would clamp the texture
         coordinates in texel space. 
  
  New Procedures and Functions
  
      None.
  
  New Tokens
  
      Accepted by the <param> parameter of TexParameteri and TexParameterf, and
      by the <params> parameter of TexParameteriv and TexParameterfv, when their
      <pname> parameter is TEXTURE_WRAP_S, TEXTURE_WRAP_T, or TEXTURE_WRAP_R:
  
          CLAMP_TO_BORDER_ARB                             0x812D
  
  Additions to Chapter 2 of the OpenGL 1.2.1 Specification (OpenGL Operation)
  
      None.
  
  Additions to Chapter 3 of the OpenGL 1.2.1 Specification (Rasterization)
  
      Modify Table 3.17, p. 124, editing only the following lines:
  
      Name              Type      Legal Values
      ==============    =======   ====================
      TEXTURE_WRAP_S    integer   CLAMP, CLAMP_TO_EDGE, REPEAT,
                                  CLAMP_TO_BORDER_ARB 
      TEXTURE_WRAP_T    integer   CLAMP, CLAMP_TO_EDGE, REPEAT,
                                  CLAMP_TO_BORDER_ARB 
      TEXTURE_WRAP_R    integer   CLAMP, CLAMP_TO_EDGE, REPEAT,
                                  CLAMP_TO_BORDER_ARB 
  
  
      Modify Section 3.8.4, Texture Wrap Modes, p.124
  
      (add at the end of the section, p. 125)
  
      CLAMP_TO_BORDER_ARB clamps texture coordinates at all mipmaps such that
      the texture filter always samples border texels for fragments whose
      corresponding texture coordinate is sufficiently far outside the range
      [0,1].  The color returned when clamping is derived only from the border
      texels of the texture image, or from the constant border color if the
      texture image does not have a border.
  
      Texture coordinates are clamped to the range [min, max].  The minimum
      value is defined as
  
          min = -1 / 2N
  
      where N is the size (not including borders) of the one-, two-, or
      three-dimensional texture image in the direction of clamping.  The maximum
      value is defined as
  
          max = 1 - min
  
      so that clamping is always symmetric about the [0,1] mapped range of a
      texture coordinate.
  
  Additions to Chapter 4 of the OpenGL 1.2.1 Specification (Per-Fragment
  Operations and the Frame Buffer)
  
      None.
  
  Additions to Chapter 5 of the OpenGL 1.2.1 Specification (Special Functions)
  
      None.
  
  Additions to Chapter 6 of the OpenGL 1.2.1 Specification (State and
  State Requests)
  
      None.
  
  Additions to Appendix A of the OpenGL 1.2.1 Specification (Invariance)
  
      None.
  
  Additions to the AGL/GLX/WGL Specifications
  
      None.
  
  GLX Protocol
  
      None.
  
  Errors
  
      None.
  
  New State
  
      Only the type information changes for these parameters.
  
      (table 6.13, p. 203)
                                                                  Initial
      Get Value                           Type    Get Command     Value   Description Sec.    Attribute
      ---------                           ----    -----------     ------- ----------- ----    ---------
      TEXTURE_WRAP_S                      3+ x Z4 GetTexParameter  REPEAT Texture wrap  3.8   texture
      TEXTURE_WRAP_T                      3+ x Z4 GetTexParameter  REPEAT Texture wrap  3.8   texture
      TEXTURE_WRAP_R                      3+ x Z4 GetTexParameter  REPEAT Texture wrap  3.8   texture
  
  Revision History
  
      1.0,  06/22/2000 prbrown1:   Added issue w.r.t. higher order filters.
      
      0.2,  05/23/2000 prbrown1:   Removed dependency on SGIS_texture_filter4
                                   per ARB guidelines.
  
      0.1,  05/02/2000 prbrown1:   Initial revision -- mostly stolen from
                                   GL_SGIS_texture_border_clamp.
  
  