GLAPI/glGetShaderPrecisionFormat: Difference between revisions

From OpenGL Wiki
Jump to navigation Jump to search
4.0 API.
 
m Bot: Adding better formatting.
 
(5 intermediate revisions by the same user not shown)
Line 9: Line 9:
== Function Definition ==
== Function Definition ==


   void '''glGetShaderPrecisionFormat'''(GLenum ''shaderType'', GLenum ''precisionType'', GLint *''range'', GLint *''precision'');
   void '''glGetShaderPrecisionFormat'''(GLenum {{param|shaderType}}, GLenum {{param|precisionType}}, GLint *{{param|range}}, GLint *{{param|precision}});


; shaderType
; shaderType
: Specifies the type of shader whose precision to query. ''shaderType'' must be {{code|GL_VERTEX_SHADER}} or {{code|GL_FRAGMENT_SHADER}}.
: Specifies the type of shader whose precision to query. {{param|shaderType}} must be {{enum|GL_VERTEX_SHADER}} or {{enum|GL_FRAGMENT_SHADER}}.
; precisionType
; precisionType
: Specifies the numeric format whose precision and range to query.
: Specifies the numeric format whose precision and range to query.
Line 22: Line 22:
== Description ==
== Description ==


'''glGetShaderPrecisionFormat''' retrieves the numeric range and precision for the implementation's representation of quantities in different numeric formats in specified shader type. ''shaderType'' specifies the type of shader for which the numeric precision and range is to be retrieved and must be one of {{code|GL_VERTEX_SHADER}} or {{code|GL_FRAGMENT_SHADER}}. ''precisionType'' specifies the numeric format to query and must be one of {{code|GL_LOW_FLOAT}}, {{code|GL_MEDIUM_FLOAT}}{{code|GL_HIGH_FLOAT}}, {{code|GL_LOW_INT}}, {{code|GL_MEDIUM_INT}}, or {{code|GL_HIGH_INT}}.
'''glGetShaderPrecisionFormat''' retrieves the numeric range and precision for the implementation's representation of quantities in different numeric formats in specified shader type. {{param|shaderType}} specifies the type of shader for which the numeric precision and range is to be retrieved and must be one of {{enum|GL_VERTEX_SHADER}} or {{enum|GL_FRAGMENT_SHADER}}. {{param|precisionType}} specifies the numeric format to query and must be one of {{enum|GL_LOW_FLOAT}}, {{enum|GL_MEDIUM_FLOAT}}{{enum|GL_HIGH_FLOAT}}, {{enum|GL_LOW_INT}}, {{enum|GL_MEDIUM_INT}}, or {{enum|GL_HIGH_INT}}.


''range'' points to an array of two integers into which the format's numeric range will be returned. If min and max are the smallest values representable in the format, then the values returned are defined to be: ''range''[0] = floor(log2(|min|)) and ''range''[1] = floor(log2(|max|)).
{{param|range}} points to an array of two integers into which the format's numeric range will be returned. If min and max are the smallest values representable in the format, then the values returned are defined to be: {{param|range}}[0] = floor(log2(|min|)) and {{param|range}}[1] = floor(log2(|max|)).


''precision'' specifies the address of an integer into which will be written the log2 value of the number of bits of precision of the format. If the smallest representable value greater than 1 is 1 + ''eps'', then the integer addressed by ''precision'' will contain floor(-log2(eps)).
{{param|precision}} specifies the address of an integer into which will be written the log2 value of the number of bits of precision of the format. If the smallest representable value greater than 1 is 1 + ''eps'', then the integer addressed by {{param|precision}} will contain floor(-log2(eps)).


== Errors ==
== Errors ==


{{code|GL_INVALID_ENUM}} is generated if ''shaderType'' or ''precisionType'' is not an accepted value.
{{enum|GL_INVALID_ENUM}} is generated if {{param|shaderType}} or {{param|precisionType}} is not an accepted value.


== Copyright ==
== Copyright ==
Line 36: Line 36:
Copyright © 2010 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. [http://opencontent.org/openpub/ http://opencontent.org/openpub/].
Copyright © 2010 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. [http://opencontent.org/openpub/ http://opencontent.org/openpub/].


[[Category:API Reference 4|GetShaderPrecisionFormat]]
[[Category:Core API Ref Shader Program Query|GetShaderPrecisionFormat]]
[[Category:Core API Reference|GetShaderPrecisionFormat]]
[[Category:Program Object API State Functions|GetShaderPrecisionFormat]]

Latest revision as of 10:01, 15 August 2013

glGetShaderPrecisionFormat
Core in version 4.6
Core since version 4.1
Core ARB extension ARB_ES2_compatibility

glGetShaderPrecisionFormat: retrieve the range and precision for numeric formats supported by the shader compiler

Function Definition

 void glGetShaderPrecisionFormat(GLenum shaderType​, GLenum precisionType​, GLint *range​, GLint *precision​);
shaderType
Specifies the type of shader whose precision to query. shaderType​ must be GL_VERTEX_SHADER or GL_FRAGMENT_SHADER.
precisionType
Specifies the numeric format whose precision and range to query.
range
Specifies the address of array of two integers into which encodings of the implementation's numeric range are returned.
precision
Specifies the address of an integer into which the numeric precision of the implementation is written.

Description

glGetShaderPrecisionFormat retrieves the numeric range and precision for the implementation's representation of quantities in different numeric formats in specified shader type. shaderType​ specifies the type of shader for which the numeric precision and range is to be retrieved and must be one of GL_VERTEX_SHADER or GL_FRAGMENT_SHADER. precisionType​ specifies the numeric format to query and must be one of GL_LOW_FLOAT, GL_MEDIUM_FLOATGL_HIGH_FLOAT, GL_LOW_INT, GL_MEDIUM_INT, or GL_HIGH_INT.

range​ points to an array of two integers into which the format's numeric range will be returned. If min and max are the smallest values representable in the format, then the values returned are defined to be: range​[0] = floor(log2(|min|)) and range​[1] = floor(log2(|max|)).

precision​ specifies the address of an integer into which will be written the log2 value of the number of bits of precision of the format. If the smallest representable value greater than 1 is 1 + eps, then the integer addressed by precision​ will contain floor(-log2(eps)).

Errors

GL_INVALID_ENUM is generated if shaderType​ or precisionType​ is not an accepted value.

Copyright

Copyright © 2010 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.