OpenGL.GL.ARB.gpu_shader_fp64
OpenGL extension ARB.gpu_shader_fp64
This module customises the behaviour of the
OpenGL.raw.GL.ARB.gpu_shader_fp64 to provide a more
Python-friendly API
Overview (from the spec)
This extension allows GLSL shaders to use double-precision floating-point
data types, including vectors and matrices of doubles. Doubles may be
used as inputs, outputs, and uniforms.
The shading language supports various arithmetic and comparison operators
on double-precision scalar, vector, and matrix types, and provides a set
of built-in functions including:
- square roots and inverse square roots;
- fused floating-point multiply-add operations;
- splitting a floating-point number into a significand and exponent (frexp), or building a floating-point number from a significand and exponent (ldexp);
- absolute value, sign tests, various functions to round to an integer value, modulus, minimum, maximum, clamping, blending two values, step functions, and testing for infinity and NaN values;
- packing and unpacking doubles into a pair of 32-bit unsigned integers;
- matrix component-wise multiplication, and computation of outer products, transposes, determinants, and inverses; and
- vector relational functions.
Double-precision versions of angle, trigonometry, and exponential
functions are not supported.
Implicit conversions are supported from integer and single-precision
floating-point values to doubles, and this extension uses the relaxed
function overloading rules specified by the ARB_gpu_shader5 extension to
resolve ambiguities.
This extension provides API functions for specifying double-precision
uniforms in the default uniform block, including functions similar to the
uniform functions added by EXT_direct_state_access (if supported).
This extension provides an "LF" suffix for specifying double-precision
constants. Floating-point constants without a suffix in GLSL are treated
as single-precision values for backward compatibility with versions not
supporting doubles; similar constants are treated as double-precision
values in the "C" programming language.
This extension does not support interpolation of double-precision values;
doubles used as fragment shader inputs must be qualified as "flat".
Additionally, this extension does not allow vertex attributes with 64-bit
components. That support is added separately by EXT_vertex_attrib_64bit.
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
Functions
Constants
GL_DOUBLE (5130)
GL_DOUBLE_MAT2 (36678)
GL_DOUBLE_MAT2x3 (36681)
GL_DOUBLE_MAT2x4 (36682)
GL_DOUBLE_MAT3 (36679)
GL_DOUBLE_MAT3x2 (36683)
GL_DOUBLE_MAT3x4 (36684)
GL_DOUBLE_MAT4 (36680)
GL_DOUBLE_MAT4x2 (36685)
GL_DOUBLE_MAT4x3 (36686)
GL_DOUBLE_VEC2 (36860)
GL_DOUBLE_VEC3 (36861)
GL_DOUBLE_VEC4 (36862)