GLuint EnvMode; /* unit[0] only */
/** MESA_META_VERTEX */
- struct gl_array_object *VAO;
+ struct gl_vertex_array_object *VAO;
struct gl_buffer_object *ArrayBufferObj;
/** MESA_META_VIEWPORT */
static inline void
update_derived_client_arrays(struct gl_context *ctx)
{
- struct gl_array_object *vao = ctx->Array.VAO;
+ struct gl_vertex_array_object *vao = ctx->Array.VAO;
if (vao->NewArrays) {
_mesa_update_array_object_client_arrays(ctx, vao);
AEarray *aa = actx->arrays; /* non-indexed arrays (ex: glNormal) */
AEattrib *at = actx->attribs; /* indexed arrays (ex: glMultiTexCoord) */
GLuint i;
- struct gl_array_object *vao = ctx->Array.VAO;
+ struct gl_vertex_array_object *vao = ctx->Array.VAO;
actx->nr_vbos = 0;
* non-existent.
*/
-struct gl_array_object *
+struct gl_vertex_array_object *
_mesa_lookup_arrayobj(struct gl_context *ctx, GLuint id)
{
if (id == 0)
return NULL;
else
- return (struct gl_array_object *)
+ return (struct gl_vertex_array_object *)
_mesa_HashLookup(ctx->Array.Objects, id);
}
* This is done just prior to array object destruction.
*/
static void
-unbind_array_object_vbos(struct gl_context *ctx, struct gl_array_object *obj)
+unbind_array_object_vbos(struct gl_context *ctx, struct gl_vertex_array_object *obj)
{
GLuint i;
* This function is intended to be called via
* \c dd_function_table::NewArrayObject.
*/
-struct gl_array_object *
+struct gl_vertex_array_object *
_mesa_new_array_object( struct gl_context *ctx, GLuint name )
{
- struct gl_array_object *obj = CALLOC_STRUCT(gl_array_object);
+ struct gl_vertex_array_object *obj = CALLOC_STRUCT(gl_vertex_array_object);
if (obj)
_mesa_initialize_array_object(ctx, obj, name);
return obj;
* \c dd_function_table::DeleteArrayObject.
*/
void
-_mesa_delete_array_object( struct gl_context *ctx, struct gl_array_object *obj )
+_mesa_delete_array_object( struct gl_context *ctx, struct gl_vertex_array_object *obj )
{
(void) ctx;
unbind_array_object_vbos(ctx, obj);
*/
void
_mesa_reference_array_object_(struct gl_context *ctx,
- struct gl_array_object **ptr,
- struct gl_array_object *vao)
+ struct gl_vertex_array_object **ptr,
+ struct gl_vertex_array_object *vao)
{
assert(*ptr != vao);
if (*ptr) {
/* Unreference the old array object */
GLboolean deleteFlag = GL_FALSE;
- struct gl_array_object *oldObj = *ptr;
+ struct gl_vertex_array_object *oldObj = *ptr;
_glthread_LOCK_MUTEX(oldObj->Mutex);
ASSERT(oldObj->RefCount > 0);
static void
init_array(struct gl_context *ctx,
- struct gl_array_object *obj, GLuint index, GLint size, GLint type)
+ struct gl_vertex_array_object *obj, GLuint index, GLint size, GLint type)
{
struct gl_vertex_attrib_array *array = &obj->VertexAttrib[index];
struct gl_vertex_buffer_binding *binding = &obj->VertexBinding[index];
/**
- * Initialize a gl_array_object's arrays.
+ * Initialize a gl_vertex_array_object's arrays.
*/
void
_mesa_initialize_array_object( struct gl_context *ctx,
- struct gl_array_object *obj,
+ struct gl_vertex_array_object *obj,
GLuint name )
{
GLuint i;
* Add the given array object to the array object pool.
*/
static void
-save_array_object( struct gl_context *ctx, struct gl_array_object *obj )
+save_array_object( struct gl_context *ctx, struct gl_vertex_array_object *obj )
{
if (obj->Name > 0) {
/* insert into hash table */
* Do not deallocate the array object though.
*/
static void
-remove_array_object( struct gl_context *ctx, struct gl_array_object *obj )
+remove_array_object( struct gl_context *ctx, struct gl_vertex_array_object *obj )
{
if (obj->Name > 0) {
/* remove from hash table */
* \return min(vao->_VertexAttrib[*]._MaxElement).
*/
static GLuint
-compute_max_element(struct gl_array_object *vao, GLbitfield64 enabled)
+compute_max_element(struct gl_vertex_array_object *vao, GLbitfield64 enabled)
{
GLuint min = ~((GLuint)0);
/**
- * Examine vertex arrays to update the gl_array_object::_MaxElement field.
+ * Examine vertex arrays to update the gl_vertex_array_object::_MaxElement field.
*/
void
_mesa_update_array_object_max_element(struct gl_context *ctx,
- struct gl_array_object *vao)
+ struct gl_vertex_array_object *vao)
{
GLbitfield64 enabled;
*/
void
_mesa_update_array_object_client_arrays(struct gl_context *ctx,
- struct gl_array_object *vao)
+ struct gl_vertex_array_object *vao)
{
GLbitfield64 arrays = vao->NewArrays;
static void
bind_vertex_array(struct gl_context *ctx, GLuint id, GLboolean genRequired)
{
- struct gl_array_object * const oldObj = ctx->Array.VAO;
- struct gl_array_object *newObj = NULL;
+ struct gl_vertex_array_object * const oldObj = ctx->Array.VAO;
+ struct gl_vertex_array_object *newObj = NULL;
ASSERT(oldObj != NULL);
}
for (i = 0; i < n; i++) {
- struct gl_array_object *obj = _mesa_lookup_arrayobj(ctx, ids[i]);
+ struct gl_vertex_array_object *obj = _mesa_lookup_arrayobj(ctx, ids[i]);
if ( obj != NULL ) {
ASSERT( obj->Name == ids[i] );
/* Allocate new, empty array objects and return identifiers */
for (i = 0; i < n; i++) {
- struct gl_array_object *obj;
+ struct gl_vertex_array_object *obj;
GLuint name = first + i;
obj = (*ctx->Driver.NewArrayObject)( ctx, name );
GLboolean GLAPIENTRY
_mesa_IsVertexArray( GLuint id )
{
- struct gl_array_object * obj;
+ struct gl_vertex_array_object * obj;
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE);
* Internal functions
*/
-extern struct gl_array_object *
+extern struct gl_vertex_array_object *
_mesa_lookup_arrayobj(struct gl_context *ctx, GLuint id);
-extern struct gl_array_object *
+extern struct gl_vertex_array_object *
_mesa_new_array_object( struct gl_context *ctx, GLuint name );
extern void
-_mesa_delete_array_object( struct gl_context *ctx, struct gl_array_object *obj );
+_mesa_delete_array_object( struct gl_context *ctx, struct gl_vertex_array_object *obj );
extern void
_mesa_reference_array_object_(struct gl_context *ctx,
- struct gl_array_object **ptr,
- struct gl_array_object *vao);
+ struct gl_vertex_array_object **ptr,
+ struct gl_vertex_array_object *vao);
static inline void
_mesa_reference_array_object(struct gl_context *ctx,
- struct gl_array_object **ptr,
- struct gl_array_object *vao)
+ struct gl_vertex_array_object **ptr,
+ struct gl_vertex_array_object *vao)
{
if (*ptr != vao)
_mesa_reference_array_object_(ctx, ptr, vao);
extern void
_mesa_initialize_array_object( struct gl_context *ctx,
- struct gl_array_object *obj, GLuint name );
+ struct gl_vertex_array_object *obj, GLuint name );
extern void
_mesa_update_array_object_max_element(struct gl_context *ctx,
- struct gl_array_object *vao);
+ struct gl_vertex_array_object *vao);
extern void
_mesa_update_array_object_client_arrays(struct gl_context *ctx,
- struct gl_array_object *vao);
+ struct gl_vertex_array_object *vao);
/** Returns the bitmask of all enabled arrays in fixed function mode.
* are available.
*/
static inline GLbitfield64
-_mesa_array_object_get_enabled_ff(const struct gl_array_object *vao)
+_mesa_array_object_get_enabled_ff(const struct gl_vertex_array_object *vao)
{
return vao->_Enabled & VERT_BIT_FF_ALL;
}
* precedence over the legacy position array.
*/
static inline GLbitfield64
-_mesa_array_object_get_enabled_arb(const struct gl_array_object *vao)
+_mesa_array_object_get_enabled_arb(const struct gl_vertex_array_object *vao)
{
GLbitfield64 enabled = vao->_Enabled;
return enabled & ~(VERT_BIT_POS & (enabled >> VERT_ATTRIB_GENERIC0));
#define GL_CLIENT_UNPACK_BIT (1<<21)
/**
- * Copy gl_array_object from src to dest.
+ * Copy gl_vertex_array_object from src to dest.
* 'dest' must be in an initialized state.
*/
static void
copy_array_object(struct gl_context *ctx,
- struct gl_array_object *dest,
- struct gl_array_object *src)
+ struct gl_vertex_array_object *dest,
+ struct gl_vertex_array_object *src)
{
GLuint i;
init_array_attrib_data(struct gl_context *ctx,
struct gl_array_attrib *attrib)
{
- /* Get a non driver gl_array_object. */
- attrib->VAO = CALLOC_STRUCT( gl_array_object );
+ /* Get a non driver gl_vertex_array_object. */
+ attrib->VAO = CALLOC_STRUCT( gl_vertex_array_object );
if (attrib->VAO == NULL) {
_mesa_error(ctx, GL_OUT_OF_MEMORY, "glPushClientAttrib");
for (i = 0; i < n; i++) {
struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, ids[i]);
if (bufObj) {
- struct gl_array_object *vao = ctx->Array.VAO;
+ struct gl_vertex_array_object *vao = ctx->Array.VAO;
GLuint j;
ASSERT(bufObj->Name == ids[i] || bufObj == &DummyBufferObject);
* \name Vertex Array objects
*/
/*@{*/
- struct gl_array_object * (*NewArrayObject)(struct gl_context *ctx, GLuint id);
- void (*DeleteArrayObject)(struct gl_context *ctx, struct gl_array_object *);
- void (*BindArrayObject)(struct gl_context *ctx, struct gl_array_object *);
+ struct gl_vertex_array_object * (*NewArrayObject)(struct gl_context *ctx, GLuint id);
+ void (*DeleteArrayObject)(struct gl_context *ctx, struct gl_vertex_array_object *);
+ void (*BindArrayObject)(struct gl_context *ctx, struct gl_vertex_array_object *);
/*@}*/
/**
static void
client_state(struct gl_context *ctx, GLenum cap, GLboolean state)
{
- struct gl_array_object *vao = ctx->Array.VAO;
+ struct gl_vertex_array_object *vao = ctx->Array.VAO;
GLbitfield64 flag;
GLboolean *var;
#define CONTEXT_FIELD(field, type) \
LOC_CONTEXT, type, offsetof(struct gl_context, field)
#define ARRAY_FIELD(field, type) \
- LOC_ARRAY, type, offsetof(struct gl_array_object, field)
+ LOC_ARRAY, type, offsetof(struct gl_vertex_array_object, field)
#undef CONST /* already defined through windows.h */
#define CONST(value) \
LOC_CONTEXT, TYPE_CONST, value
[ "SAMPLE_ALPHA_TO_ONE_ARB", "CONTEXT_BOOL(Multisample.SampleAlphaToOne), NO_EXTRA" ],
# GL_ARB_vertex_buffer_object
- [ "VERTEX_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_array_object, VertexBinding[VERT_ATTRIB_POS].BufferObj), NO_EXTRA" ],
- [ "NORMAL_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_array_object, VertexBinding[VERT_ATTRIB_NORMAL].BufferObj), NO_EXTRA" ],
- [ "COLOR_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_array_object, VertexBinding[VERT_ATTRIB_COLOR0].BufferObj), NO_EXTRA" ],
+ [ "VERTEX_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, VertexBinding[VERT_ATTRIB_POS].BufferObj), NO_EXTRA" ],
+ [ "NORMAL_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, VertexBinding[VERT_ATTRIB_NORMAL].BufferObj), NO_EXTRA" ],
+ [ "COLOR_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, VertexBinding[VERT_ATTRIB_COLOR0].BufferObj), NO_EXTRA" ],
[ "TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, NO_OFFSET, NO_EXTRA" ],
# GL_OES_point_sprite
[ "PRIMITIVE_RESTART_INDEX_NV", "CONTEXT_INT(Array.RestartIndex), extra_NV_primitive_restart" ],
# GL_ARB_vertex_buffer_object
- [ "INDEX_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_array_object, VertexBinding[VERT_ATTRIB_COLOR_INDEX].BufferObj), NO_EXTRA" ],
- [ "EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_array_object, VertexBinding[VERT_ATTRIB_EDGEFLAG].BufferObj), NO_EXTRA" ],
- [ "SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_array_object, VertexBinding[VERT_ATTRIB_COLOR1].BufferObj), NO_EXTRA" ],
- [ "FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_array_object, VertexBinding[VERT_ATTRIB_FOG].BufferObj), NO_EXTRA" ],
+ [ "INDEX_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, VertexBinding[VERT_ATTRIB_COLOR_INDEX].BufferObj), NO_EXTRA" ],
+ [ "EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, VertexBinding[VERT_ATTRIB_EDGEFLAG].BufferObj), NO_EXTRA" ],
+ [ "SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, VertexBinding[VERT_ATTRIB_COLOR1].BufferObj), NO_EXTRA" ],
+ [ "FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_vertex_array_object, VertexBinding[VERT_ATTRIB_FOG].BufferObj), NO_EXTRA" ],
# GL_ARB_vertex_program
# == GL_VERTEX_PROGRAM_NV
* Collection of vertex arrays. Defined by the GL_APPLE_vertex_array_object
* extension, but a nice encapsulation in any case.
*/
-struct gl_array_object
+struct gl_vertex_array_object
{
/** Name of the array object as received from glGenVertexArrayAPPLE. */
GLuint Name;
struct gl_array_attrib
{
/** Currently bound array object. See _mesa_BindVertexArrayAPPLE() */
- struct gl_array_object *VAO;
+ struct gl_vertex_array_object *VAO;
/** The default vertex array object */
- struct gl_array_object *DefaultVAO;
+ struct gl_vertex_array_object *DefaultVAO;
/** Array objects (GL_ARB/APPLE_vertex_array_object) */
struct _mesa_HashTable *Objects;
break;
case GL_VERTEX_ARRAY:
{
- struct gl_array_object *obj = _mesa_lookup_arrayobj(ctx, name);
+ struct gl_vertex_array_object *obj = _mesa_lookup_arrayobj(ctx, name);
if (obj)
labelPtr = &obj->Label;
}
vertex_attrib_binding(struct gl_context *ctx, GLuint attribIndex,
GLuint bindingIndex)
{
- struct gl_array_object *vao = ctx->Array.VAO;
+ struct gl_vertex_array_object *vao = ctx->Array.VAO;
struct gl_vertex_attrib_array *array = &vao->VertexAttrib[attribIndex];
if (array->VertexBinding != bindingIndex) {
struct gl_buffer_object *vbo,
GLintptr offset, GLsizei stride)
{
- struct gl_array_object *vao = ctx->Array.VAO;
+ struct gl_vertex_array_object *vao = ctx->Array.VAO;
struct gl_vertex_buffer_binding *binding = &vao->VertexBinding[index];
if (binding->BufferObj != vbo ||
vertex_binding_divisor(struct gl_context *ctx, GLuint bindingIndex,
GLuint divisor)
{
- struct gl_array_object *vao = ctx->Array.VAO;
+ struct gl_vertex_array_object *vao = ctx->Array.VAO;
struct gl_vertex_buffer_binding *binding =
&vao->VertexBinding[bindingIndex];
void GLAPIENTRY
_mesa_EnableVertexAttribArray(GLuint index)
{
- struct gl_array_object *vao;
+ struct gl_vertex_array_object *vao;
GET_CURRENT_CONTEXT(ctx);
if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs) {
void GLAPIENTRY
_mesa_DisableVertexAttribArray(GLuint index)
{
- struct gl_array_object *vao;
+ struct gl_vertex_array_object *vao;
GET_CURRENT_CONTEXT(ctx);
if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs) {
get_vertex_array_attrib(struct gl_context *ctx, GLuint index, GLenum pname,
const char *caller)
{
- const struct gl_array_object *vao = ctx->Array.VAO;
+ const struct gl_vertex_array_object *vao = ctx->Array.VAO;
const struct gl_vertex_attrib_array *array;
if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs) {
GLsizei stride)
{
GET_CURRENT_CONTEXT(ctx);
- const struct gl_array_object *vao = ctx->Array.VAO;
+ const struct gl_vertex_array_object *vao = ctx->Array.VAO;
struct gl_buffer_object *vbo;
ASSERT_OUTSIDE_BEGIN_END(ctx);
void
_mesa_print_arrays(struct gl_context *ctx)
{
- struct gl_array_object *vao = ctx->Array.VAO;
+ struct gl_vertex_array_object *vao = ctx->Array.VAO;
GLuint i;
_mesa_update_array_object_max_element(ctx, vao);
static void
delete_arrayobj_cb(GLuint id, void *data, void *userData)
{
- struct gl_array_object *vao = (struct gl_array_object *) data;
+ struct gl_vertex_array_object *vao = (struct gl_vertex_array_object *) data;
struct gl_context *ctx = (struct gl_context *) userData;
_mesa_delete_array_object(ctx, vao);
}
check_draw_elements_data(struct gl_context *ctx, GLsizei count, GLenum elemType,
const void *elements, GLint basevertex)
{
- struct gl_array_object *vao = ctx->Array.VAO;
+ struct gl_vertex_array_object *vao = ctx->Array.VAO;
const void *elemMap;
GLint i, k;
{
struct vbo_context *vbo = vbo_context(ctx);
struct vbo_exec_context *exec = &vbo->exec;
- struct gl_array_object *vao = ctx->Array.VAO;
+ struct gl_vertex_array_object *vao = ctx->Array.VAO;
int i;
printf("vbo_exec_DrawArrays(mode 0x%x, start %d, count %d):\n",