139 lines
3.4 KiB
RPMSpec
139 lines
3.4 KiB
RPMSpec
Name
|
|
|
|
EXT_shader_integer_mix
|
|
|
|
Name Strings
|
|
|
|
GL_EXT_shader_integer_mix
|
|
|
|
Contact
|
|
|
|
Matt Turner (matt.turner 'at' intel.com)
|
|
|
|
Contributors
|
|
|
|
Matt Turner, Intel
|
|
Ian Romanick, Intel
|
|
|
|
Status
|
|
|
|
Shipping
|
|
|
|
Version
|
|
|
|
Last Modified Date: 09/12/2013
|
|
Author Revision: 6
|
|
|
|
Number
|
|
|
|
TBD
|
|
|
|
Dependencies
|
|
|
|
OpenGL 3.0 or OpenGL ES 3.0 is required. This extension interacts with
|
|
GL_ARB_ES3_compatibility.
|
|
|
|
This extension is written against the OpenGL 4.4 (core) specification
|
|
and the GLSL 4.40 specification.
|
|
|
|
Overview
|
|
|
|
GLSL 1.30 (and GLSL ES 3.00) expanded the mix() built-in function to
|
|
operate on a boolean third argument that does not interpolate but
|
|
selects. This extension extends mix() to select between int, uint,
|
|
and bool components.
|
|
|
|
New Procedures and Functions
|
|
|
|
None.
|
|
|
|
New Tokens
|
|
|
|
None.
|
|
|
|
Additions to Chapter 8 of the GLSL 4.40 Specification (Built-in Functions)
|
|
|
|
Modify Section 8.3, Common Functions
|
|
|
|
Additions to the table listing common built-in functions:
|
|
|
|
Syntax Description
|
|
--------------------------- --------------------------------------------------
|
|
genIType mix(genIType x, Selects which vector each returned component comes
|
|
genIType y, from. For a component of a that is false, the
|
|
genBType a) corresponding component of x is returned. For a
|
|
genUType mix(genUType x, component of a that is true, the corresponding
|
|
genUType y, component of y is returned.
|
|
genBType a)
|
|
genBType mix(genBType x,
|
|
genBType y,
|
|
genBType a)
|
|
|
|
Additions to the AGL/GLX/WGL Specifications
|
|
|
|
None.
|
|
|
|
Modifications to The OpenGL Shading Language Specification, Version 4.40
|
|
|
|
Including the following line in a shader can be used to control the
|
|
language features described in this extension:
|
|
|
|
#extension GL_EXT_shader_integer_mix : <behavior>
|
|
|
|
where <behavior> is as specified in section 3.3.
|
|
|
|
New preprocessor #defines are added to the OpenGL Shading Language:
|
|
|
|
#define GL_EXT_shader_integer_mix 1
|
|
|
|
Interactions with ARB_ES3_compatibility
|
|
|
|
On desktop implementations that support ARB_ES3_compatibility,
|
|
GL_EXT_shader_integer_mix can be enabled (and the new functions
|
|
used) in shaders declared with '#version 300 es'.
|
|
|
|
GLX Protocol
|
|
|
|
None.
|
|
|
|
Errors
|
|
|
|
None.
|
|
|
|
New State
|
|
|
|
None.
|
|
|
|
New Implementation Dependent State
|
|
|
|
None.
|
|
|
|
Issues
|
|
|
|
1) Should we allow linear interpolation of integers via a non-boolean
|
|
third component?
|
|
|
|
RESOLVED: No.
|
|
|
|
2) Should we allow mix() to select between boolean components?
|
|
|
|
RESOLVED: Yes. Implementing the same functionality using casts would be
|
|
possible but ugly.
|
|
|
|
Revision History
|
|
|
|
Rev. Date Author Changes
|
|
---- -------- -------- ---------------------------------------------
|
|
6 09/12/2013 idr After discussions in Khronos, change vendor
|
|
prefix to EXT.
|
|
|
|
5 09/09/2013 idr Add ARB_ES3_compatibility interaction.
|
|
|
|
4 09/06/2013 mattst88 Allow extension on OpenGL ES 3.0.
|
|
|
|
3 08/28/2013 mattst88 Add #extension/#define changes.
|
|
|
|
2 08/26/2013 mattst88 Change vendor prefix to MESA. Add mix() that
|
|
selects between boolean components.
|
|
1 08/26/2013 mattst88 Initial revision
|