Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. Name
  2.  
  3.     EXT_shader_integer_mix
  4.  
  5. Name Strings
  6.  
  7.     GL_EXT_shader_integer_mix
  8.  
  9. Contact
  10.  
  11.     Matt Turner (matt.turner 'at' intel.com)
  12.  
  13. Contributors
  14.  
  15.     Matt Turner, Intel
  16.     Ian Romanick, Intel
  17.  
  18. Status
  19.  
  20.     Shipping
  21.  
  22. Version
  23.  
  24.     Last Modified Date:         09/12/2013
  25.     Author Revision:            6
  26.  
  27. Number
  28.  
  29.     TBD
  30.  
  31. Dependencies
  32.  
  33.     OpenGL 3.0 or OpenGL ES 3.0 is required. This extension interacts with
  34.     GL_ARB_ES3_compatibility.
  35.  
  36.     This extension is written against the OpenGL 4.4 (core) specification
  37.     and the GLSL 4.40 specification.
  38.  
  39. Overview
  40.  
  41.     GLSL 1.30 (and GLSL ES 3.00) expanded the mix() built-in function to
  42.     operate on a boolean third argument that does not interpolate but
  43.     selects. This extension extends mix() to select between int, uint,
  44.     and bool components.
  45.  
  46. New Procedures and Functions
  47.  
  48.     None.
  49.  
  50. New Tokens
  51.  
  52.     None.
  53.  
  54. Additions to Chapter 8 of the GLSL 4.40 Specification (Built-in Functions)
  55.  
  56.     Modify Section 8.3, Common Functions
  57.  
  58.     Additions to the table listing common built-in functions:
  59.  
  60.       Syntax                       Description
  61.       ---------------------------  --------------------------------------------------
  62.       genIType mix(genIType x,     Selects which vector each returned component comes
  63.                    genIType y,     from. For a component of a that is false, the
  64.                    genBType a)     corresponding component of x is returned. For a
  65.       genUType mix(genUType x,     component of a that is true, the corresponding
  66.                    genUType y,     component of y is returned.
  67.                    genBType a)
  68.       genBType mix(genBType x,
  69.                    genBType y,
  70.                    genBType a)
  71.  
  72. Additions to the AGL/GLX/WGL Specifications
  73.  
  74.     None.
  75.  
  76. Modifications to The OpenGL Shading Language Specification, Version 4.40
  77.  
  78.     Including the following line in a shader can be used to control the
  79.     language features described in this extension:
  80.  
  81.       #extension GL_EXT_shader_integer_mix : <behavior>
  82.  
  83.     where <behavior> is as specified in section 3.3.
  84.  
  85.     New preprocessor #defines are added to the OpenGL Shading Language:
  86.  
  87.       #define GL_EXT_shader_integer_mix        1
  88.  
  89. Interactions with ARB_ES3_compatibility
  90.  
  91.     On desktop implementations that support ARB_ES3_compatibility,
  92.     GL_EXT_shader_integer_mix can be enabled (and the new functions
  93.     used) in shaders declared with '#version 300 es'.
  94.  
  95. GLX Protocol
  96.  
  97.     None.
  98.  
  99. Errors
  100.  
  101.     None.
  102.  
  103. New State
  104.  
  105.     None.
  106.  
  107. New Implementation Dependent State
  108.  
  109.     None.
  110.  
  111. Issues
  112.  
  113.     1) Should we allow linear interpolation of integers via a non-boolean
  114.        third component?
  115.  
  116.     RESOLVED: No.
  117.  
  118.     2) Should we allow mix() to select between boolean components?
  119.  
  120.     RESOLVED: Yes. Implementing the same functionality using casts would be
  121.     possible but ugly.
  122.  
  123. Revision History
  124.  
  125.     Rev.    Date      Author    Changes
  126.     ----  --------    --------  ---------------------------------------------
  127.       6   09/12/2013  idr       After discussions in Khronos, change vendor
  128.                                 prefix to EXT.
  129.  
  130.       5   09/09/2013  idr       Add ARB_ES3_compatibility interaction.
  131.  
  132.       4   09/06/2013  mattst88  Allow extension on OpenGL ES 3.0.
  133.  
  134.       3   08/28/2013  mattst88  Add #extension/#define changes.
  135.  
  136.       2   08/26/2013  mattst88  Change vendor prefix to MESA. Add mix() that
  137.                                 selects between boolean components.
  138.       1   08/26/2013  mattst88  Initial revision
  139.