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.
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.