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:
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.
Requires GL32 and GLSL 1.50. Promoted to core in OpenGL 4..
| Modifier and Type | Field and Description |
|---|---|
| public static final int | GL_DOUBLE_MAT2
Returned in the |
| public static final int | GL_DOUBLE_MAT2x3
Returned in the |
| public static final int | GL_DOUBLE_MAT2x4
Returned in the |
| public static final int | GL_DOUBLE_MAT3
Returned in the |
| public static final int | GL_DOUBLE_MAT3x2
Returned in the |
| public static final int | GL_DOUBLE_MAT3x4
Returned in the |
| public static final int | GL_DOUBLE_MAT4
Returned in the |
| public static final int | GL_DOUBLE_MAT4x2
Returned in the |
| public static final int | GL_DOUBLE_MAT4x3
Returned in the |
| public static final int | GL_DOUBLE_VEC2
Returned in the |
| public static final int | GL_DOUBLE_VEC3
Returned in the |
| public static final int | GL_DOUBLE_VEC4
Returned in the |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public static double | glGetUniformd(int
the program object to be queried program, int the location of the uniform variable to be queried location)Returns the double value(s) of a uniform variable. |
| public static void | glGetUniformdv(int
the program object to be queried program, int the location of the uniform variable to be queried location, DoubleBuffer the value of the specified uniform variable params)Returns the double value(s) of a uniform variable. |
| public static void | |
| public static native void | glProgramUniform1dEXT(int
the program object to update program, int the location of the uniform variable to be modified location, double the uniform x value x)DSA version of |
| public static void | glProgramUniform1dvEXT(int
the program object to update program, int the location of the uniform variable to be modified location, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform variableDSA version of |
| public static void | glProgramUniform1dvEXT(int program, int location, double[] value)
Array version of: |
| public static native void | glProgramUniform2dEXT(int
the program object to update program, int the location of the uniform variable to be modified location, double the uniform x value x, double the uniform y value y)DSA version of |
| public static void | glProgramUniform2dvEXT(int
the program object to update program, int the location of the uniform variable to be modified location, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform variableDSA version of |
| public static void | glProgramUniform2dvEXT(int program, int location, double[] value)
Array version of: |
| public static native void | glProgramUniform3dEXT(int
the program object to update program, int the location of the uniform variable to be modified location, double the uniform x value x, double the uniform y value y, double the uniform z value z)DSA version of |
| public static void | glProgramUniform3dvEXT(int
the program object to update program, int the location of the uniform variable to be modified location, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform variableDSA version of |
| public static void | glProgramUniform3dvEXT(int program, int location, double[] value)
Array version of: |
| public static native void | glProgramUniform4dEXT(int
the program object to update program, int the location of the uniform variable to be modified location, double the uniform x value x, double the uniform y value y, double the uniform z value z, double the uniform w value w)DSA version of |
| public static void | glProgramUniform4dvEXT(int
the program object to update program, int the location of the uniform variable to be modified location, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform variableDSA version of |
| public static void | glProgramUniform4dvEXT(int program, int location, double[] value)
Array version of: |
| public static void | glProgramUniformMatrix2dvEXT(int
the program object to update program, int the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableDSA version of |
| public static void | glProgramUniformMatrix2dvEXT(int program, int location, boolean transpose, double[] value)
Array version of: |
| public static void | glProgramUniformMatrix2x3dvEXT(int
the program object to update program, int the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableDSA version of |
| public static void | glProgramUniformMatrix2x3dvEXT(int program, int location, boolean transpose, double[] value)
Array version of: |
| public static void | glProgramUniformMatrix2x4dvEXT(int
the program object to update program, int the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableDSA version of |
| public static void | glProgramUniformMatrix2x4dvEXT(int program, int location, boolean transpose, double[] value)
Array version of: |
| public static void | glProgramUniformMatrix3dvEXT(int
the program object to update program, int the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableDSA version of |
| public static void | glProgramUniformMatrix3dvEXT(int program, int location, boolean transpose, double[] value)
Array version of: |
| public static void | glProgramUniformMatrix3x2dvEXT(int
the program object to update program, int the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableDSA version of |
| public static void | glProgramUniformMatrix3x2dvEXT(int program, int location, boolean transpose, double[] value)
Array version of: |
| public static void | glProgramUniformMatrix3x4dvEXT(int
the program object to update program, int the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableDSA version of |
| public static void | glProgramUniformMatrix3x4dvEXT(int program, int location, boolean transpose, double[] value)
Array version of: |
| public static void | glProgramUniformMatrix4dvEXT(int
the program object to update program, int the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableDSA version of |
| public static void | glProgramUniformMatrix4dvEXT(int program, int location, boolean transpose, double[] value)
Array version of: |
| public static void | glProgramUniformMatrix4x2dvEXT(int
the program object to update program, int the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableDSA version of |
| public static void | glProgramUniformMatrix4x2dvEXT(int program, int location, boolean transpose, double[] value)
Array version of: |
| public static void | glProgramUniformMatrix4x3dvEXT(int
the program object to update program, int the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableDSA version of |
| public static void | glProgramUniformMatrix4x3dvEXT(int program, int location, boolean transpose, double[] value)
Array version of: |
| public static void | glUniform1d(int
the location of the uniform variable to be modified location, double the uniform x value x)Specifies the value of a double uniform variable for the current program object. |
| public static void | glUniform1dv(int
the location of the uniform variable to be modified location, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform variableSpecifies the value of a single double uniform variable or a double uniform variable array for the current program object. |
| public static void | |
| public static void | glUniform2d(int
the location of the uniform variable to be modified location, double the uniform x value x, double the uniform y value y)Specifies the value of a dvec2 uniform variable for the current program object. |
| public static void | glUniform2dv(int
the location of the uniform variable to be modified location, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform variableSpecifies the value of a single dvec2 uniform variable or a dvec2 uniform variable array for the current program object. |
| public static void | |
| public static void | glUniform3d(int
the location of the uniform variable to be modified location, double the uniform x value x, double the uniform y value y, double the uniform z value z)Specifies the value of a dvec3 uniform variable for the current program object. |
| public static void | glUniform3dv(int
the location of the uniform variable to be modified location, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform variableSpecifies the value of a single dvec3 uniform variable or a dvec3 uniform variable array for the current program object. |
| public static void | |
| public static void | glUniform4d(int
the location of the uniform variable to be modified location, double the uniform x value x, double the uniform y value y, double the uniform z value z, double the uniform w value w)Specifies the value of a dvec4 uniform variable for the current program object. |
| public static void | glUniform4dv(int
the location of the uniform variable to be modified location, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform variableSpecifies the value of a single dvec4 uniform variable or a dvec4 uniform variable array for the current program object. |
| public static void | |
| public static void | glUniformMatrix2dv(int
the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableSpecifies the value of a single dmat2 uniform variable or a dmat2 uniform variable array for the current program object. |
| public static void | glUniformMatrix2dv(int location, boolean transpose, double[] value)
Array version of: |
| public static void | glUniformMatrix2x3dv(int
the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableSpecifies the value of a single dmat2x3 uniform variable or a dmat2x3 uniform variable array for the current program object. |
| public static void | glUniformMatrix2x3dv(int location, boolean transpose, double[] value)
Array version of: |
| public static void | glUniformMatrix2x4dv(int
the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableSpecifies the value of a single dmat2x4 uniform variable or a dmat2x4 uniform variable array for the current program object. |
| public static void | glUniformMatrix2x4dv(int location, boolean transpose, double[] value)
Array version of: |
| public static void | glUniformMatrix3dv(int
the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableSpecifies the value of a single dmat3 uniform variable or a dmat3 uniform variable array for the current program object. |
| public static void | glUniformMatrix3dv(int location, boolean transpose, double[] value)
Array version of: |
| public static void | glUniformMatrix3x2dv(int
the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableSpecifies the value of a single dmat3x2 uniform variable or a dmat3x2 uniform variable array for the current program object. |
| public static void | glUniformMatrix3x2dv(int location, boolean transpose, double[] value)
Array version of: |
| public static void | glUniformMatrix3x4dv(int
the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableSpecifies the value of a single dmat3x4 uniform variable or a dmat3x4 uniform variable array for the current program object. |
| public static void | glUniformMatrix3x4dv(int location, boolean transpose, double[] value)
Array version of: |
| public static void | glUniformMatrix4dv(int
the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableSpecifies the value of a single dmat4 uniform variable or a dmat4 uniform variable array for the current program object. |
| public static void | glUniformMatrix4dv(int location, boolean transpose, double[] value)
Array version of: |
| public static void | glUniformMatrix4x2dv(int
the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableSpecifies the value of a single dmat4x2 uniform variable or a dmat4x2 uniform variable array for the current program object. |
| public static void | glUniformMatrix4x2dv(int location, boolean transpose, double[] value)
Array version of: |
| public static void | glUniformMatrix4x3dv(int
the location of the uniform variable to be modified location, boolean whether to transpose the matrix as the values are loaded into the uniform variable transpose, DoubleBuffer a pointer to an array of value)count values that will be used to update the specified uniform matrix variableSpecifies the value of a single dmat4x3 uniform variable or a dmat4x3 uniform variable array for the current program object. |
| public static void | glUniformMatrix4x3dv(int location, boolean transpose, double[] value)
Array version of: |
| public static void | |
| public static native void | nglProgramUniform1dvEXT(int program, int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array. count, long value)Unsafe version of: |
| public static native void | nglProgramUniform2dvEXT(int program, int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array. count, long value)Unsafe version of: |
| public static native void | nglProgramUniform3dvEXT(int program, int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array. count, long value)Unsafe version of: |
| public static native void | nglProgramUniform4dvEXT(int program, int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array. count, long value)Unsafe version of: |
| public static native void | nglProgramUniformMatrix2dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static native void | nglProgramUniformMatrix2x3dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static native void | nglProgramUniformMatrix2x4dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static native void | nglProgramUniformMatrix3dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static native void | nglProgramUniformMatrix3x2dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static native void | nglProgramUniformMatrix3x4dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static native void | nglProgramUniformMatrix4dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static native void | nglProgramUniformMatrix4x2dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static native void | nglProgramUniformMatrix4x3dvEXT(int program, int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static void | nglUniform1dv(int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array. count, long value)Unsafe version of: |
| public static void | nglUniform2dv(int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array. count, long value)Unsafe version of: |
| public static void | nglUniform3dv(int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array. count, long value)Unsafe version of: |
| public static void | nglUniform4dv(int location, int
the number of elements that are to be modified. This should be 1 if the targeted uniform variable is not an array, and 1 or more if it is an array. count, long value)Unsafe version of: |
| public static void | nglUniformMatrix2dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static void | nglUniformMatrix2x3dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static void | nglUniformMatrix2x4dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static void | nglUniformMatrix3dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static void | nglUniformMatrix3x2dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static void | nglUniformMatrix3x4dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static void | nglUniformMatrix4dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static void | nglUniformMatrix4x2dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |
| public static void | nglUniformMatrix4x3dv(int location, int
the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices. count, boolean transpose, long value)Unsafe version of: |