22 Utility functions for homogenous vectors
These functions are not part of the OpenGL API but are provided to make working with glVertexPointer and similar procedures easier.
Returns #t if v belongs to one of
the homogenous vector types which can be used with OpenGL, #f otherwise.
These vector types are:
u8vector, s8vector, u16vector, s16vector,
u32vector, s32vector, f32vector and f64vector.
Returns #t iff v satisfies either
gl-vector?, cpointer? or exact-nonnegative-integer?.
This defines a very liberal "pointer-to-anything" type.
Typically, OpenGL procedures which accept gl-pointer? have additional requirements
based on the context. In other words, the fact that the contract suggests that they accept such
a wide range of values doesn’t mean that in any particular context all values are legal.
Return #t iff v is one of the constants
GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT,
GL_UNSIGNED_INT, GL_INT,
GL_FLOAT, or GL_DOUBLE.
Determine the OpenGL type of v.
This returns a numerical value such as GL_SHORT, GL_FLOAT, etc., which
can be passed into glVertexPointer and similar procedures.
Get a C pointer to v.
Get the length of v.
Get the OpenGL type and C pointer of v.
This is slightly more efficient than getting them each individually.
procedure
→
gl-type? cpointer? exact-nonnegative-integer? v : gl-vector?
Get the OpenGL type, C pointer and length of v.
This is slightly more efficient than getting them each individually.
Get the length of v in bytes.
Get the alignment requirement of v.
Get the C type associated with the given OpenGL type.
Get the length in bytes of values of type type.
Get the alignment requirement of values of type type.