Top Description Fields Constructors Methods
org.lwjgl.opengl

public Class ARBVertexAttrib64Bit

extends Object
Class Inheritance
Imports
java.nio.*, org.lwjgl.system.*

Native bindings to the ARB_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, GLSL 1.30 and ARB_gpu_shader_fp64. Promoted to core in OpenGL 4.1.

Field Summary

Modifier and TypeField and Description
public static final int
GL_DOUBLE_MAT2

Returned in the type parameter of GetActiveAttrib.

public static final int
GL_DOUBLE_MAT2x3

Returned in the type parameter of GetActiveAttrib.

public static final int
GL_DOUBLE_MAT2x4

Returned in the type parameter of GetActiveAttrib.

public static final int
GL_DOUBLE_MAT3

Returned in the type parameter of GetActiveAttrib.

public static final int
GL_DOUBLE_MAT3x2

Returned in the type parameter of GetActiveAttrib.

public static final int
GL_DOUBLE_MAT3x4

Returned in the type parameter of GetActiveAttrib.

public static final int
GL_DOUBLE_MAT4

Returned in the type parameter of GetActiveAttrib.

public static final int
GL_DOUBLE_MAT4x2

Returned in the type parameter of GetActiveAttrib.

public static final int
GL_DOUBLE_MAT4x3

Returned in the type parameter of GetActiveAttrib.

public static final int
GL_DOUBLE_VEC2

Returned in the type parameter of GetActiveAttrib.

public static final int
GL_DOUBLE_VEC3

Returned in the type parameter of GetActiveAttrib.

public static final int
GL_DOUBLE_VEC4

Returned in the type parameter of GetActiveAttrib.

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static void
glGetVertexAttribLdv(int
the generic vertex attribute parameter to be queried
index
,
int
the symbolic name of the vertex attribute parameter to be queried
pname
,
DoubleBuffer
the requested data
params
)

Double version of GetVertexAttribiv.

public static void
glGetVertexAttribLdv(int index, int pname, double[] params)

Array version of: GetVertexAttribLdv

public static native void
glVertexArrayVertexAttribLOffsetEXT(int
the vertex array object
vaobj
,
int
the buffer object
buffer
,
int
the index of the generic vertex attribute to be modified
index
,
int
the number of values per vertex that are stored in the array. The initial value is 4. One of:
1234BGRA
size
,
int
the data type of each component in the array. Must be:
DOUBLE
type
,
int
the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
stride
,
long
the offset of the first component of the first generic vertex attribute in the array in the data store of the buffer. The initial value is 0.
offset
)

DSA version of VertexAttribLPointer.

public static void
glVertexAttribL1d(int
the index of the generic vertex attribute to be modified
index
,
double
the vertex attribute x component
x
)

Specifies the value of a generic vertex attribute.

public static void
glVertexAttribL1dv(int
the index of the generic vertex attribute to be modified
index
,
DoubleBuffer
the vertex attribute buffer
v
)

Pointer version of VertexAttribL1d.

public static void
glVertexAttribL1dv(int index, double[] v)

Array version of: VertexAttribL1dv

public static void
glVertexAttribL2d(int
the index of the generic vertex attribute to be modified
index
,
double
the vertex attribute x component
x
,
double
the vertex attribute y component
y
)

Specifies the value of a generic vertex attribute.

public static void
glVertexAttribL2dv(int
the index of the generic vertex attribute to be modified
index
,
DoubleBuffer
the vertex attribute buffer
v
)

Pointer version of VertexAttribL2d.

public static void
glVertexAttribL2dv(int index, double[] v)

Array version of: VertexAttribL2dv

public static void
glVertexAttribL3d(int
the index of the generic vertex attribute to be modified
index
,
double
the vertex attribute x component
x
,
double
the vertex attribute y component
y
,
double
the vertex attribute z component
z
)

Specifies the value of a generic vertex attribute.

public static void
glVertexAttribL3dv(int
the index of the generic vertex attribute to be modified
index
,
DoubleBuffer
the vertex attribute buffer
v
)

Pointer version of VertexAttribL3d.

public static void
glVertexAttribL3dv(int index, double[] v)

Array version of: VertexAttribL3dv

public static void
glVertexAttribL4d(int
the index of the generic vertex attribute to be modified
index
,
double
the vertex attribute x component
x
,
double
the vertex attribute y component
y
,
double
the vertex attribute z component
z
,
double
the vertex attribute w component
w
)

Specifies the value of a generic vertex attribute.

public static void
glVertexAttribL4dv(int
the index of the generic vertex attribute to be modified
index
,
DoubleBuffer
the vertex attribute buffer
v
)

Pointer version of VertexAttribL4d.

public static void
glVertexAttribL4dv(int index, double[] v)

Array version of: VertexAttribL4dv

public static void
glVertexAttribLPointer(int
the index of the generic vertex attribute to be modified
index
,
int
the number of values per vertex that are stored in the array. The initial value is 4. One of:
1234BGRA
size
,
int
the data type of each component in the array. Must be:
DOUBLE
type
,
int
the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
stride
,
ByteBuffer
the vertex attribute data or the offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ARRAY_BUFFER target. The initial value is 0.
pointer
)

Specifies the location and organization of a 64-bit vertex attribute array.

public static void
glVertexAttribLPointer(int
the index of the generic vertex attribute to be modified
index
,
int
the number of values per vertex that are stored in the array. The initial value is 4. One of:
1234BGRA
size
,
int
the data type of each component in the array. Must be:
DOUBLE
type
,
int
the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
stride
,
long
the vertex attribute data or the offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ARRAY_BUFFER target. The initial value is 0.
pointer
)

Specifies the location and organization of a 64-bit vertex attribute array.

public static void
glVertexAttribLPointer(int
the index of the generic vertex attribute to be modified
index
,
int
the number of values per vertex that are stored in the array. The initial value is 4. One of:
1234BGRA
size
,
int
the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
stride
,
DoubleBuffer
the vertex attribute data or the offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ARRAY_BUFFER target. The initial value is 0.
pointer
)

Specifies the location and organization of a 64-bit vertex attribute array.

public static void
nglGetVertexAttribLdv(int index, int pname, long params)

Unsafe version of: GetVertexAttribLdv

public static void
nglVertexAttribL1dv(int index, long v)

Unsafe version of: VertexAttribL1dv

public static void
nglVertexAttribL2dv(int index, long v)

Unsafe version of: VertexAttribL2dv

public static void
nglVertexAttribL3dv(int index, long v)

Unsafe version of: VertexAttribL3dv

public static void
nglVertexAttribL4dv(int index, long v)

Unsafe version of: VertexAttribL4dv

public static void
nglVertexAttribLPointer(int index, int size, int
the data type of each component in the array. Must be:
DOUBLE
type
,
int stride, long pointer)

Unsafe version of: VertexAttribLPointer

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

GL_DOUBLE_MAT2back to summary
public static final int GL_DOUBLE_MAT2

Returned in the type parameter of GetActiveAttrib.

GL_DOUBLE_MAT2x3back to summary
public static final int GL_DOUBLE_MAT2x3

Returned in the type parameter of GetActiveAttrib.

GL_DOUBLE_MAT2x4back to summary
public static final int GL_DOUBLE_MAT2x4

Returned in the type parameter of GetActiveAttrib.

GL_DOUBLE_MAT3back to summary
public static final int GL_DOUBLE_MAT3

Returned in the type parameter of GetActiveAttrib.

GL_DOUBLE_MAT3x2back to summary
public static final int GL_DOUBLE_MAT3x2

Returned in the type parameter of GetActiveAttrib.

GL_DOUBLE_MAT3x4back to summary
public static final int GL_DOUBLE_MAT3x4

Returned in the type parameter of GetActiveAttrib.

GL_DOUBLE_MAT4back to summary
public static final int GL_DOUBLE_MAT4

Returned in the type parameter of GetActiveAttrib.

GL_DOUBLE_MAT4x2back to summary
public static final int GL_DOUBLE_MAT4x2

Returned in the type parameter of GetActiveAttrib.

GL_DOUBLE_MAT4x3back to summary
public static final int GL_DOUBLE_MAT4x3

Returned in the type parameter of GetActiveAttrib.

GL_DOUBLE_VEC2back to summary
public static final int GL_DOUBLE_VEC2

Returned in the type parameter of GetActiveAttrib.

GL_DOUBLE_VEC3back to summary
public static final int GL_DOUBLE_VEC3

Returned in the type parameter of GetActiveAttrib.

GL_DOUBLE_VEC4back to summary
public static final int GL_DOUBLE_VEC4

Returned in the type parameter of GetActiveAttrib.

Constructor Detail

ARBVertexAttrib64Bitback to summary
protected ARBVertexAttrib64Bit()

Method Detail

glGetVertexAttribLdvback to summary
public static void glGetVertexAttribLdv(int index, int pname, DoubleBuffer params)

Double version of GetVertexAttribiv.

Parameters
index:int

the generic vertex attribute parameter to be queried

pname:int

the symbolic name of the vertex attribute parameter to be queried

params:DoubleBuffer

the requested data

glGetVertexAttribLdvback to summary
public static void glGetVertexAttribLdv(int index, int pname, double[] params)

Array version of: GetVertexAttribLdv

glVertexArrayVertexAttribLOffsetEXTback to summary
public static native void glVertexArrayVertexAttribLOffsetEXT(int vaobj, int buffer, int index, int size, int type, int stride, long offset)

DSA version of VertexAttribLPointer.

Parameters
vaobj:int

the vertex array object

buffer:int

the buffer object

index:int

the index of the generic vertex attribute to be modified

size:int

the number of values per vertex that are stored in the array. The initial value is 4. One of:

1234BGRA
type:int

the data type of each component in the array. Must be:

DOUBLE
stride:int

the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.

offset:long

the offset of the first component of the first generic vertex attribute in the array in the data store of the buffer. The initial value is 0.

glVertexAttribL1dback to summary
public static void glVertexAttribL1d(int index, double x)

Specifies the value of a generic vertex attribute. The y and z components are implicitly set to 0.0 and w to 1.0.

Parameters
index:int

the index of the generic vertex attribute to be modified

x:double

the vertex attribute x component

glVertexAttribL1dvback to summary
public static void glVertexAttribL1dv(int index, DoubleBuffer v)

Pointer version of VertexAttribL1d.

Parameters
index:int

the index of the generic vertex attribute to be modified

v:DoubleBuffer

the vertex attribute buffer

glVertexAttribL1dvback to summary
public static void glVertexAttribL1dv(int index, double[] v)

Array version of: VertexAttribL1dv

glVertexAttribL2dback to summary
public static void glVertexAttribL2d(int index, double x, double y)

Specifies the value of a generic vertex attribute. The y component is implicitly set to 0.0 and w to 1.0.

Parameters
index:int

the index of the generic vertex attribute to be modified

x:double

the vertex attribute x component

y:double

the vertex attribute y component

glVertexAttribL2dvback to summary
public static void glVertexAttribL2dv(int index, DoubleBuffer v)

Pointer version of VertexAttribL2d.

Parameters
index:int

the index of the generic vertex attribute to be modified

v:DoubleBuffer

the vertex attribute buffer

glVertexAttribL2dvback to summary
public static void glVertexAttribL2dv(int index, double[] v)

Array version of: VertexAttribL2dv

glVertexAttribL3dback to summary
public static void glVertexAttribL3d(int index, double x, double y, double z)

Specifies the value of a generic vertex attribute. The w is implicitly set to 1.0.

Parameters
index:int

the index of the generic vertex attribute to be modified

x:double

the vertex attribute x component

y:double

the vertex attribute y component

z:double

the vertex attribute z component

glVertexAttribL3dvback to summary
public static void glVertexAttribL3dv(int index, DoubleBuffer v)

Pointer version of VertexAttribL3d.

Parameters
index:int

the index of the generic vertex attribute to be modified

v:DoubleBuffer

the vertex attribute buffer

glVertexAttribL3dvback to summary
public static void glVertexAttribL3dv(int index, double[] v)

Array version of: VertexAttribL3dv

glVertexAttribL4dback to summary
public static void glVertexAttribL4d(int index, double x, double y, double z, double w)

Specifies the value of a generic vertex attribute.

Parameters
index:int

the index of the generic vertex attribute to be modified

x:double

the vertex attribute x component

y:double

the vertex attribute y component

z:double

the vertex attribute z component

w:double

the vertex attribute w component

glVertexAttribL4dvback to summary
public static void glVertexAttribL4dv(int index, DoubleBuffer v)

Pointer version of VertexAttribL4d.

Parameters
index:int

the index of the generic vertex attribute to be modified

v:DoubleBuffer

the vertex attribute buffer

glVertexAttribL4dvback to summary
public static void glVertexAttribL4dv(int index, double[] v)

Array version of: VertexAttribL4dv

glVertexAttribLPointerback to summary
public static void glVertexAttribLPointer(int index, int size, int type, int stride, ByteBuffer pointer)

Specifies the location and organization of a 64-bit vertex attribute array.

Parameters
index:int

the index of the generic vertex attribute to be modified

size:int

the number of values per vertex that are stored in the array. The initial value is 4. One of:

1234BGRA
type:int

the data type of each component in the array. Must be:

DOUBLE
stride:int

the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.

pointer:ByteBuffer

the vertex attribute data or the offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ARRAY_BUFFER target. The initial value is 0.

glVertexAttribLPointerback to summary
public static void glVertexAttribLPointer(int index, int size, int type, int stride, long pointer)

Specifies the location and organization of a 64-bit vertex attribute array.

Parameters
index:int

the index of the generic vertex attribute to be modified

size:int

the number of values per vertex that are stored in the array. The initial value is 4. One of:

1234BGRA
type:int

the data type of each component in the array. Must be:

DOUBLE
stride:int

the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.

pointer:long

the vertex attribute data or the offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ARRAY_BUFFER target. The initial value is 0.

glVertexAttribLPointerback to summary
public static void glVertexAttribLPointer(int index, int size, int stride, DoubleBuffer pointer)

Specifies the location and organization of a 64-bit vertex attribute array.

Parameters
index:int

the index of the generic vertex attribute to be modified

size:int

the number of values per vertex that are stored in the array. The initial value is 4. One of:

1234BGRA
stride:int

the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.

pointer:DoubleBuffer

the vertex attribute data or the offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ARRAY_BUFFER target. The initial value is 0.

nglGetVertexAttribLdvback to summary
public static void nglGetVertexAttribLdv(int index, int pname, long params)

Unsafe version of: GetVertexAttribLdv

nglVertexAttribL1dvback to summary
public static void nglVertexAttribL1dv(int index, long v)

Unsafe version of: VertexAttribL1dv

nglVertexAttribL2dvback to summary
public static void nglVertexAttribL2dv(int index, long v)

Unsafe version of: VertexAttribL2dv

nglVertexAttribL3dvback to summary
public static void nglVertexAttribL3dv(int index, long v)

Unsafe version of: VertexAttribL3dv

nglVertexAttribL4dvback to summary
public static void nglVertexAttribL4dv(int index, long v)

Unsafe version of: VertexAttribL4dv

nglVertexAttribLPointerback to summary
public static void nglVertexAttribLPointer(int index, int size, int type, int stride, long pointer)

Unsafe version of: VertexAttribLPointer

Parameters
type:int

the data type of each component in the array. Must be:

DOUBLE