Class EXTVertexAttrib64bit
- java.lang.Object
-
- org.lwjgl.opengl.EXTVertexAttrib64bit
-
public class EXTVertexAttrib64bit extends java.lang.Object
Native bindings to the EXT_vertex_attrib_64bit extension.This extension provides OpenGL shading language support for vertex shader inputs with 64-bit floating-point components and OpenGL API support for specifying the value of those inputs using vertex array or immediate mode entry points. This builds on the support for general-purpose support for 64-bit floating-point values in the ARB_gpu_shader_fp64 extension.
This extension provides a new class of vertex attribute functions, beginning with "VertexAttribL" ("L" for "long"), that can be used to specify attributes with 64-bit floating-point components. This extension provides no automatic type conversion between attribute and shader variables; single-precision attributes are not automatically converted to double-precision or vice versa. For shader variables with 64-bit component types, the "VertexAttribL" functions must be used to specify attribute values. For other shader variables, the "VertexAttribL" functions must not be used. If a vertex attribute is specified using the wrong attribute function, the values of the corresponding shader input are undefined. This approach requiring matching types is identical to that used for the "VertexAttribI" functions provided by OpenGL 3.0 and the EXT_gpu_shader4 extension.
Additionally, some vertex shader inputs using the wider 64-bit components may count double against the implementation-dependent limit on the number of vertex shader attribute vectors. A 64-bit scalar or a two-component vector consumes only a single generic vertex attribute; three- and four-component "long" may count as two. This approach is similar to the one used in the current GL where matrix attributes consume multiple attributes.
Note that 64-bit generic vertex attributes were nominally supported beginning with the introduction of vertex shaders in OpenGL 2.0. However, the OpenGL Shading Language at the time had no support for 64-bit data types, so any such values were automatically converted to 32-bit.
Support for 64-bit floating-point vertex attributes in this extension can be combined with other extensions. In particular, this extension provides an entry point that can be used with EXT_direct_state_access to directly set state for any vertex array object. Also, the related NV_vertex_attrib_integer_64bit extension provides an entry point to specify bindless vertex attribute arrays with 64-bit components, integer or floating-point.
Requires
OpenGL 3.0
andARB_gpu_shader_fp64
(or equivalent functionality).
-
-
Field Summary
Fields Modifier and Type Field and Description static int
GL_DOUBLE_MAT2_EXT
GL_DOUBLE_MAT2x3_EXT
GL_DOUBLE_MAT2x4_EXT
GL_DOUBLE_MAT3_EXT
GL_DOUBLE_MAT3x2_EXT
GL_DOUBLE_MAT3x4_EXT
GL_DOUBLE_MAT4_EXT
GL_DOUBLE_MAT4x2_EXT
GL_DOUBLE_MAT4x3_EXT
GL_DOUBLE_VEC2_EXT
GL_DOUBLE_VEC3_EXT
GL_DOUBLE_VEC4_EXTReturned in thetype
parameter of GetActiveAttrib.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method and Description static void
glGetVertexAttribLdvEXT(int index, int pname, double[] params)
Array version of:GetVertexAttribLdvEXT
static void
glGetVertexAttribLdvEXT(int index, int pname, java.nio.DoubleBuffer params)
static void
glVertexArrayVertexAttribLOffsetEXT(int vaobj, int buffer, int index, int size, int type, int stride, long offset)
static void
glVertexAttribL1dEXT(int index, double x)
static void
glVertexAttribL1dvEXT(int index, double[] v)
Array version of:VertexAttribL1dvEXT
static void
glVertexAttribL1dvEXT(int index, java.nio.DoubleBuffer v)
static void
glVertexAttribL2dEXT(int index, double x, double y)
static void
glVertexAttribL2dvEXT(int index, double[] v)
Array version of:VertexAttribL2dvEXT
static void
glVertexAttribL2dvEXT(int index, java.nio.DoubleBuffer v)
static void
glVertexAttribL3dEXT(int index, double x, double y, double z)
static void
glVertexAttribL3dvEXT(int index, double[] v)
Array version of:VertexAttribL3dvEXT
static void
glVertexAttribL3dvEXT(int index, java.nio.DoubleBuffer v)
static void
glVertexAttribL4dEXT(int index, double x, double y, double z, double w)
static void
glVertexAttribL4dvEXT(int index, double[] v)
Array version of:VertexAttribL4dvEXT
static void
glVertexAttribL4dvEXT(int index, java.nio.DoubleBuffer v)
static void
glVertexAttribLPointerEXT(int index, int size, int stride, java.nio.DoubleBuffer pointer)
static void
glVertexAttribLPointerEXT(int index, int size, int type, int stride, java.nio.ByteBuffer pointer)
static void
glVertexAttribLPointerEXT(int index, int size, int type, int stride, long pointer)
-
-
-
Field Detail
-
GL_DOUBLE_VEC2_EXT, GL_DOUBLE_VEC3_EXT, GL_DOUBLE_VEC4_EXT, GL_DOUBLE_MAT2_EXT, GL_DOUBLE_MAT3_EXT, GL_DOUBLE_MAT4_EXT, GL_DOUBLE_MAT2x3_EXT, GL_DOUBLE_MAT2x4_EXT, GL_DOUBLE_MAT3x2_EXT, GL_DOUBLE_MAT3x4_EXT, GL_DOUBLE_MAT4x2_EXT, GL_DOUBLE_MAT4x3_EXT
Returned in thetype
parameter of GetActiveAttrib.
-
-
Method Detail
-
glVertexAttribL1dEXT
public static void glVertexAttribL1dEXT(int index, double x)
-
glVertexAttribL2dEXT
public static void glVertexAttribL2dEXT(int index, double x, double y)
-
glVertexAttribL3dEXT
public static void glVertexAttribL3dEXT(int index, double x, double y, double z)
-
glVertexAttribL4dEXT
public static void glVertexAttribL4dEXT(int index, double x, double y, double z, double w)
-
glVertexAttribL1dvEXT
public static void glVertexAttribL1dvEXT(int index, java.nio.DoubleBuffer v)
-
glVertexAttribL2dvEXT
public static void glVertexAttribL2dvEXT(int index, java.nio.DoubleBuffer v)
-
glVertexAttribL3dvEXT
public static void glVertexAttribL3dvEXT(int index, java.nio.DoubleBuffer v)
-
glVertexAttribL4dvEXT
public static void glVertexAttribL4dvEXT(int index, java.nio.DoubleBuffer v)
-
glVertexAttribLPointerEXT
public static void glVertexAttribLPointerEXT(int index, int size, int type, int stride, java.nio.ByteBuffer pointer)
-
glVertexAttribLPointerEXT
public static void glVertexAttribLPointerEXT(int index, int size, int type, int stride, long pointer)
-
glVertexAttribLPointerEXT
public static void glVertexAttribLPointerEXT(int index, int size, int stride, java.nio.DoubleBuffer pointer)
-
glGetVertexAttribLdvEXT
public static void glGetVertexAttribLdvEXT(int index, int pname, java.nio.DoubleBuffer params)
-
glVertexArrayVertexAttribLOffsetEXT
public static void glVertexArrayVertexAttribLOffsetEXT(int vaobj, int buffer, int index, int size, int type, int stride, long offset)
-
glVertexAttribL1dvEXT
public static void glVertexAttribL1dvEXT(int index, double[] v)
Array version of:VertexAttribL1dvEXT
-
glVertexAttribL2dvEXT
public static void glVertexAttribL2dvEXT(int index, double[] v)
Array version of:VertexAttribL2dvEXT
-
glVertexAttribL3dvEXT
public static void glVertexAttribL3dvEXT(int index, double[] v)
Array version of:VertexAttribL3dvEXT
-
glVertexAttribL4dvEXT
public static void glVertexAttribL4dvEXT(int index, double[] v)
Array version of:VertexAttribL4dvEXT
-
glGetVertexAttribLdvEXT
public static void glGetVertexAttribLdvEXT(int index, int pname, double[] params)
Array version of:GetVertexAttribLdvEXT
-
-