diff options
Diffstat (limited to 'extensions/ANGLE_translated_shader_source.txt')
-rw-r--r-- | extensions/ANGLE_translated_shader_source.txt | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/extensions/ANGLE_translated_shader_source.txt b/extensions/ANGLE_translated_shader_source.txt new file mode 100644 index 00000000..69161156 --- /dev/null +++ b/extensions/ANGLE_translated_shader_source.txt @@ -0,0 +1,118 @@ +Name + + ANGLE_translated_shader_source + +Name Strings + + GL_ANGLE_translated_shader_source + +Contributors + + Daniel Koch, TransGaming Inc. + Gregg Tavares, Google Inc. + Kenneth Russell, Google Inc. + Zhenyao Mo, Google Inc. + +Contact + + Zhenyao Mo, Google Inc. (zmo 'at' google 'dot' com) + +Status + + Implemented in ANGLE ES2 + +Version + + Last Modified Date: October 5, 2011 + Author Revision: 2 + +Number + + OpenGL ES Extension #113 + +Dependencies + + OpenGL ES 2.0 is required. + + The extension is written against the OpenGL ES 2.0 specification. + +Overview + + WebGL uses the GLSL ES 2.0 spec on all platforms, and translates these + shaders to the host platform's native language (HLSL, GLSL, and even GLSL + ES). For debugging purposes, it is useful to be able to examine the shader + after translation. + + This extension addes a new function to query the translated shader source, + and adds a new enum for GetShaderiv's <pname> parameter to query the + translated shader source length. + +IP Status + + No known IP claims. + +New Types + + None + +New Procedures and Functions + + void GetTranslatedShaderSourceANGLE(uint shader, sizei bufsize, + sizei* length, char* source); + +New Tokens + + Accepted by the <pname> parameter of GetShaderiv: + + TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0 + +Additions to Chapter 6 of the OpenGL ES 2.0 Specification (State and State +Requests) + + Append in the end of the fourth paragraph of section 6.1.8 (Shader and + Program Queries): + + " If <pname> is TRANSLATED_SHADER_LENGTH_ANGLE, the length of the translated + source string, including a null terminator, is returned. If no source has + been defined, CompileShader has not been called, or the translation has + failed for <shader>, zero is returned." + + Append after the last paragraph of section 6.1.8 (Shader and Program + Queries): + + "The command + + void GetTranslatedShaderSourceANGLE( uint shader, sizei bufSize, + sizei *length, char *source ); + + returns in <source> the string making up the translated source code for + the shader object <shader>. The string <source> will be null terminated. + The actual number of characters written into <source>, excluding the null + terminator, is returned in <length>. If <length> is NULL, no length is + returned. The maximum number of characters that may be written into + <source>, including the null terminator, is speciļ¬ed by <bufSize>. The + string <source> is the translated string of a concatenation of the strings + passed to the GL using ShaderSource. The length of this translated string + is given by TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE, which can be queried + with GetShaderiv. + + If no source has been defined, CompileShader has not been called, or the + translation has failed for <shader>, zero is returned for <length>, and + an empty string is returned for <source>. + + If the value of SHADER_COMPILER is not TRUE, then the error INVALID_- + OPERATION is generated." + +Issues + + 1) What enum value should be used for TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE? + + RESOLVED: The first draft used a temporary enum value. This been replaced + with a enum allocated from the ANGLE range of GL enums. + +Revision History + + Revision 1, 2011/09/29, zmo + - first draft + Revision 2, 2011/10/05, dgkoch + - assigned enum |