core | glapi | vbo | math | shader | swrast | swrast_setup | tnl | tnl_dd

arrayobj.h File Reference


Detailed Description

Functions for the GL_APPLE_vertex_array_object extension.

Author:
Ian Romanick <idr@us.ibm.com>

Brian Paul

#include "context.h"

Functions

struct gl_array_object_mesa_new_array_object (GLcontext *ctx, GLuint name)
 Allocate and initialize a new vertex array object.
void _mesa_delete_array_object (GLcontext *ctx, struct gl_array_object *obj)
 Delete an array object.
void _mesa_reference_array_object (GLcontext *ctx, struct gl_array_object **ptr, struct gl_array_object *arrayObj)
 Set ptr to arrayObj w/ reference counting.
void _mesa_initialize_array_object (GLcontext *ctx, struct gl_array_object *obj, GLuint name)
 Initialize a gl_array_object's arrays.
void _mesa_update_array_object_max_element (GLcontext *ctx, struct gl_array_object *arrayObj)
 Examine vertex arrays to update the gl_array_object::_MaxElement field.
void GLAPIENTRY _mesa_BindVertexArray (GLuint id)
 ARB version of glBindVertexArray() This function behaves differently from glBindVertexArrayAPPLE() in that this function requires all ids to have been previously generated by glGenVertexArrays[APPLE]().
void GLAPIENTRY _mesa_BindVertexArrayAPPLE (GLuint id)
 Bind a new array.
void GLAPIENTRY _mesa_DeleteVertexArraysAPPLE (GLsizei n, const GLuint *ids)
 Delete a set of array objects.
void GLAPIENTRY _mesa_GenVertexArrays (GLsizei n, GLuint *arrays)
 ARB version of glGenVertexArrays() All arrays will be required to live in VBOs.
void GLAPIENTRY _mesa_GenVertexArraysAPPLE (GLsizei n, GLuint *buffer)
 APPLE version of glGenVertexArraysAPPLE() Arrays may live in VBOs or ordinary memory.
GLboolean GLAPIENTRY _mesa_IsVertexArrayAPPLE (GLuint id)
 Determine if ID is the name of an array object.


Function Documentation

void GLAPIENTRY _mesa_BindVertexArray ( GLuint  id  ) 

ARB version of glBindVertexArray() This function behaves differently from glBindVertexArrayAPPLE() in that this function requires all ids to have been previously generated by glGenVertexArrays[APPLE]().

void GLAPIENTRY _mesa_BindVertexArrayAPPLE ( GLuint  id  ) 

Bind a new array.

Todo:
The binding could be done more efficiently by comparing the non-NULL pointers in the old and new objects. The only arrays that are "dirty" are the ones that are non-NULL in either object.

void _mesa_delete_array_object ( GLcontext ctx,
struct gl_array_object obj 
)

Delete an array object.

This function is intended to be called via dd_function_table::DeleteArrayObject.

void GLAPIENTRY _mesa_DeleteVertexArraysAPPLE ( GLsizei  n,
const GLuint *  ids 
)

Delete a set of array objects.

Parameters:
n Number of array objects to delete.
ids Array of n array object IDs.

void GLAPIENTRY _mesa_GenVertexArrays ( GLsizei  n,
GLuint *  arrays 
)

ARB version of glGenVertexArrays() All arrays will be required to live in VBOs.

void GLAPIENTRY _mesa_GenVertexArraysAPPLE ( GLsizei  n,
GLuint *  buffer 
)

APPLE version of glGenVertexArraysAPPLE() Arrays may live in VBOs or ordinary memory.

void _mesa_initialize_array_object ( GLcontext ctx,
struct gl_array_object obj,
GLuint  name 
)

Initialize a gl_array_object's arrays.

GLboolean GLAPIENTRY _mesa_IsVertexArrayAPPLE ( GLuint  id  ) 

Determine if ID is the name of an array object.

Parameters:
id ID of the potential array object.
Returns:
GL_TRUE if id is the name of a array object, GL_FALSE otherwise.

struct gl_array_object* _mesa_new_array_object ( GLcontext ctx,
GLuint  name 
) [read]

Allocate and initialize a new vertex array object.

This function is intended to be called via dd_function_table::NewArrayObject.

void _mesa_reference_array_object ( GLcontext ctx,
struct gl_array_object **  ptr,
struct gl_array_object arrayObj 
)

Set ptr to arrayObj w/ reference counting.

void _mesa_update_array_object_max_element ( GLcontext ctx,
struct gl_array_object arrayObj 
)

Examine vertex arrays to update the gl_array_object::_MaxElement field.


Generated on Sun Sep 27 06:47:45 2009 for Mesa Main by  doxygen 1.5.4