[Mesa-dev] [PATCH 1/9] mesa: Rename ArrayObj to VAO and DefaultArrayObj to DefaultVAO.
Ian Romanick
idr at freedesktop.org
Sun Feb 2 07:57:18 PST 2014
Assumming you verified that everything builds at each commit, this series is
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
On 02/02/2014 07:30 AM, Kenneth Graunke wrote:
> When reading through the Mesa drawing code, it's not immediately obvious
> to me that "ArrayObj" (gl_array_object) is the Vertex Array Object (VAO)
> state. The comment above the structure explains this, but readers still
> have to remember this and translate accordingly.
>
> Out of context, "array object" is a fairly vague. Even in context,
> "array" has a lot of meanings: glDrawArrays, vertex data stored in user
> arrays, gl_client_arrays, gl_vertex_attrib_arrays, and so on.
>
> Using the term "VAO" immediately associates these fields with the OpenGL
> concept, clarifying the situation and aiding programmer sanity.
>
> Completely generated by:
> $ find . -type f -print0 | xargs -0 sed -i \
> -e 's/ArrayObj;/VAO;/g' \
> -e 's/->ArrayObj/->VAO/g' \
> -e 's/Array\.ArrayObj/Array.VAO/g' \
> -e 's/Array\.DefaultArrayObj/Array.DefaultVAO/g'
>
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
> src/mesa/drivers/common/meta.c | 128 ++++++++++++++++++++---------------------
> src/mesa/main/api_arrayelt.c | 4 +-
> src/mesa/main/api_validate.c | 36 ++++++------
> src/mesa/main/arrayobj.c | 8 +--
> src/mesa/main/attrib.c | 32 +++++------
> src/mesa/main/bufferobj.c | 8 +--
> src/mesa/main/context.c | 4 +-
> src/mesa/main/enable.c | 20 +++----
> src/mesa/main/ffvertex_prog.c | 2 +-
> src/mesa/main/get.c | 18 +++---
> src/mesa/main/getstring.c | 18 +++---
> src/mesa/main/mtypes.h | 4 +-
> src/mesa/main/state.c | 6 +-
> src/mesa/main/varray.c | 54 ++++++++---------
> src/mesa/vbo/vbo_exec_array.c | 42 +++++++-------
> src/mesa/vbo/vbo_save_api.c | 4 +-
> 16 files changed, 194 insertions(+), 194 deletions(-)
>
> diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
> index eb94deb..f0178f7 100644
> --- a/src/mesa/drivers/common/meta.c
> +++ b/src/mesa/drivers/common/meta.c
> @@ -164,7 +164,7 @@ struct save_state
> GLuint EnvMode; /* unit[0] only */
>
> /** MESA_META_VERTEX */
> - struct gl_array_object *ArrayObj;
> + struct gl_array_object *VAO;
> struct gl_buffer_object *ArrayBufferObj;
>
> /** MESA_META_VIEWPORT */
> @@ -221,7 +221,7 @@ struct temp_texture
> */
> struct blit_state
> {
> - GLuint ArrayObj;
> + GLuint VAO;
> GLuint VBO;
> GLuint DepthFP;
> GLuint ShaderProg;
> @@ -235,7 +235,7 @@ struct blit_state
> */
> struct clear_state
> {
> - GLuint ArrayObj;
> + GLuint VAO;
> GLuint VBO;
> GLuint ShaderProg;
> GLint ColorLocation;
> @@ -252,7 +252,7 @@ struct clear_state
> */
> struct copypix_state
> {
> - GLuint ArrayObj;
> + GLuint VAO;
> GLuint VBO;
> };
>
> @@ -262,7 +262,7 @@ struct copypix_state
> */
> struct drawpix_state
> {
> - GLuint ArrayObj;
> + GLuint VAO;
>
> GLuint StencilFP; /**< Fragment program for drawing stencil images */
> GLuint DepthFP; /**< Fragment program for drawing depth images */
> @@ -274,7 +274,7 @@ struct drawpix_state
> */
> struct bitmap_state
> {
> - GLuint ArrayObj;
> + GLuint VAO;
> GLuint VBO;
> struct temp_texture Tex; /**< separate texture from other meta ops */
> };
> @@ -295,7 +295,7 @@ struct glsl_sampler {
> */
> struct gen_mipmap_state
> {
> - GLuint ArrayObj;
> + GLuint VAO;
> GLuint VBO;
> GLuint FBO;
> GLuint Sampler;
> @@ -313,7 +313,7 @@ struct gen_mipmap_state
> */
> struct decompress_state
> {
> - GLuint ArrayObj;
> + GLuint VAO;
> GLuint VBO, FBO, RBO, Sampler;
> GLint Width, Height;
> };
> @@ -323,7 +323,7 @@ struct decompress_state
> */
> struct drawtex_state
> {
> - GLuint ArrayObj;
> + GLuint VAO;
> GLuint VBO;
> };
>
> @@ -726,8 +726,8 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
>
> if (state & MESA_META_VERTEX) {
> /* save vertex array object state */
> - _mesa_reference_array_object(ctx, &save->ArrayObj,
> - ctx->Array.ArrayObj);
> + _mesa_reference_array_object(ctx, &save->VAO,
> + ctx->Array.VAO);
> _mesa_reference_buffer_object(ctx, &save->ArrayBufferObj,
> ctx->Array.ArrayBufferObj);
> /* set some default state? */
> @@ -1092,8 +1092,8 @@ _mesa_meta_end(struct gl_context *ctx)
> _mesa_reference_buffer_object(ctx, &save->ArrayBufferObj, NULL);
>
> /* restore vertex array object */
> - _mesa_BindVertexArray(save->ArrayObj->Name);
> - _mesa_reference_array_object(ctx, &save->ArrayObj, NULL);
> + _mesa_BindVertexArray(save->VAO->Name);
> + _mesa_reference_array_object(ctx, &save->VAO, NULL);
> }
>
> if (state & MESA_META_VIEWPORT) {
> @@ -1461,12 +1461,12 @@ setup_ff_blit_framebuffer(struct gl_context *ctx,
> };
> struct vertex verts[4];
>
> - if (blit->ArrayObj == 0) {
> + if (blit->VAO == 0) {
> /* one-time setup */
>
> /* create vertex array object */
> - _mesa_GenVertexArrays(1, &blit->ArrayObj);
> - _mesa_BindVertexArray(blit->ArrayObj);
> + _mesa_GenVertexArrays(1, &blit->VAO);
> + _mesa_BindVertexArray(blit->VAO);
>
> /* create vertex array buffer */
> _mesa_GenBuffers(1, &blit->VBO);
> @@ -1508,11 +1508,11 @@ setup_glsl_blit_framebuffer(struct gl_context *ctx,
> assert(_mesa_is_desktop_gl(ctx) || texture_2d);
>
> /* Check if already initialized */
> - if (blit->ArrayObj == 0) {
> + if (blit->VAO == 0) {
>
> /* create vertex array object */
> - _mesa_GenVertexArrays(1, &blit->ArrayObj);
> - _mesa_BindVertexArray(blit->ArrayObj);
> + _mesa_GenVertexArrays(1, &blit->VAO);
> + _mesa_BindVertexArray(blit->VAO);
>
> /* create vertex array buffer */
> _mesa_GenBuffers(1, &blit->VBO);
> @@ -1685,7 +1685,7 @@ blitframebuffer_texture(struct gl_context *ctx,
> setup_ff_blit_framebuffer(ctx, &ctx->Meta->Blit);
> }
>
> - _mesa_BindVertexArray(blit->ArrayObj);
> + _mesa_BindVertexArray(blit->VAO);
> _mesa_BindBuffer(GL_ARRAY_BUFFER_ARB, blit->VBO);
>
> _mesa_GenSamplers(1, &sampler);
> @@ -1870,7 +1870,7 @@ _mesa_meta_BlitFramebuffer(struct gl_context *ctx,
> setup_ff_blit_framebuffer(ctx, blit);
> }
>
> - _mesa_BindVertexArray(blit->ArrayObj);
> + _mesa_BindVertexArray(blit->VAO);
> _mesa_BindBuffer(GL_ARRAY_BUFFER_ARB, blit->VBO);
>
> /* Continue with "normal" approach which involves copying the src rect
> @@ -2000,9 +2000,9 @@ _mesa_meta_BlitFramebuffer(struct gl_context *ctx,
> static void
> meta_glsl_blit_cleanup(struct gl_context *ctx, struct blit_state *blit)
> {
> - if (blit->ArrayObj) {
> - _mesa_DeleteVertexArrays(1, &blit->ArrayObj);
> - blit->ArrayObj = 0;
> + if (blit->VAO) {
> + _mesa_DeleteVertexArrays(1, &blit->VAO);
> + blit->VAO = 0;
> _mesa_DeleteBuffers(1, &blit->VBO);
> blit->VBO = 0;
> }
> @@ -2047,12 +2047,12 @@ _mesa_meta_Clear(struct gl_context *ctx, GLbitfield buffers)
>
> _mesa_meta_begin(ctx, metaSave);
>
> - if (clear->ArrayObj == 0) {
> + if (clear->VAO == 0) {
> /* one-time setup */
>
> /* create vertex array object */
> - _mesa_GenVertexArrays(1, &clear->ArrayObj);
> - _mesa_BindVertexArray(clear->ArrayObj);
> + _mesa_GenVertexArrays(1, &clear->VAO);
> + _mesa_BindVertexArray(clear->VAO);
>
> /* create vertex array buffer */
> _mesa_GenBuffers(1, &clear->VBO);
> @@ -2065,7 +2065,7 @@ _mesa_meta_Clear(struct gl_context *ctx, GLbitfield buffers)
> _mesa_EnableClientState(GL_COLOR_ARRAY);
> }
> else {
> - _mesa_BindVertexArray(clear->ArrayObj);
> + _mesa_BindVertexArray(clear->VAO);
> _mesa_BindBuffer(GL_ARRAY_BUFFER_ARB, clear->VBO);
> }
>
> @@ -2180,12 +2180,12 @@ meta_glsl_clear_init(struct gl_context *ctx, struct clear_state *clear)
> GLuint vs, gs = 0, fs;
> bool has_integer_textures;
>
> - if (clear->ArrayObj != 0)
> + if (clear->VAO != 0)
> return;
>
> /* create vertex array object */
> - _mesa_GenVertexArrays(1, &clear->ArrayObj);
> - _mesa_BindVertexArray(clear->ArrayObj);
> + _mesa_GenVertexArrays(1, &clear->VAO);
> + _mesa_BindVertexArray(clear->VAO);
>
> /* create vertex array buffer */
> _mesa_GenBuffers(1, &clear->VBO);
> @@ -2289,10 +2289,10 @@ meta_glsl_clear_init(struct gl_context *ctx, struct clear_state *clear)
> static void
> meta_glsl_clear_cleanup(struct gl_context *ctx, struct clear_state *clear)
> {
> - if (clear->ArrayObj == 0)
> + if (clear->VAO == 0)
> return;
> - _mesa_DeleteVertexArrays(1, &clear->ArrayObj);
> - clear->ArrayObj = 0;
> + _mesa_DeleteVertexArrays(1, &clear->VAO);
> + clear->VAO = 0;
> _mesa_DeleteBuffers(1, &clear->VBO);
> clear->VBO = 0;
> _mesa_DeleteObjectARB(clear->ShaderProg);
> @@ -2357,7 +2357,7 @@ _mesa_meta_glsl_Clear(struct gl_context *ctx, GLbitfield buffers)
> ctx->Color.ClearColor.f);
> }
>
> - _mesa_BindVertexArray(clear->ArrayObj);
> + _mesa_BindVertexArray(clear->VAO);
> _mesa_BindBuffer(GL_ARRAY_BUFFER_ARB, clear->VBO);
>
> /* GL_COLOR_BUFFER_BIT */
> @@ -2470,12 +2470,12 @@ _mesa_meta_CopyPixels(struct gl_context *ctx, GLint srcX, GLint srcY,
> MESA_META_VERTEX |
> MESA_META_VIEWPORT));
>
> - if (copypix->ArrayObj == 0) {
> + if (copypix->VAO == 0) {
> /* one-time setup */
>
> /* create vertex array object */
> - _mesa_GenVertexArrays(1, ©pix->ArrayObj);
> - _mesa_BindVertexArray(copypix->ArrayObj);
> + _mesa_GenVertexArrays(1, ©pix->VAO);
> + _mesa_BindVertexArray(copypix->VAO);
>
> /* create vertex array buffer */
> _mesa_GenBuffers(1, ©pix->VBO);
> @@ -2490,7 +2490,7 @@ _mesa_meta_CopyPixels(struct gl_context *ctx, GLint srcX, GLint srcY,
> _mesa_EnableClientState(GL_TEXTURE_COORD_ARRAY);
> }
> else {
> - _mesa_BindVertexArray(copypix->ArrayObj);
> + _mesa_BindVertexArray(copypix->VAO);
> _mesa_BindBuffer(GL_ARRAY_BUFFER_ARB, copypix->VBO);
> }
>
> @@ -2825,11 +2825,11 @@ _mesa_meta_DrawPixels(struct gl_context *ctx,
> verts[3].t = tex->Ttop;
> }
>
> - if (drawpix->ArrayObj == 0) {
> + if (drawpix->VAO == 0) {
> /* one-time setup: create vertex array object */
> - _mesa_GenVertexArrays(1, &drawpix->ArrayObj);
> + _mesa_GenVertexArrays(1, &drawpix->VAO);
> }
> - _mesa_BindVertexArray(drawpix->ArrayObj);
> + _mesa_BindVertexArray(drawpix->VAO);
>
> /* create vertex array buffer */
> _mesa_GenBuffers(1, &vbo);
> @@ -3001,12 +3001,12 @@ _mesa_meta_Bitmap(struct gl_context *ctx,
> MESA_META_VERTEX |
> MESA_META_VIEWPORT));
>
> - if (bitmap->ArrayObj == 0) {
> + if (bitmap->VAO == 0) {
> /* one-time setup */
>
> /* create vertex array object */
> - _mesa_GenVertexArraysAPPLE(1, &bitmap->ArrayObj);
> - _mesa_BindVertexArrayAPPLE(bitmap->ArrayObj);
> + _mesa_GenVertexArraysAPPLE(1, &bitmap->VAO);
> + _mesa_BindVertexArrayAPPLE(bitmap->VAO);
>
> /* create vertex array buffer */
> _mesa_GenBuffers(1, &bitmap->VBO);
> @@ -3023,7 +3023,7 @@ _mesa_meta_Bitmap(struct gl_context *ctx,
> _mesa_EnableClientState(GL_COLOR_ARRAY);
> }
> else {
> - _mesa_BindVertexArray(bitmap->ArrayObj);
> + _mesa_BindVertexArray(bitmap->VAO);
> _mesa_BindBuffer(GL_ARRAY_BUFFER_ARB, bitmap->VBO);
> }
>
> @@ -3368,11 +3368,11 @@ setup_ff_generate_mipmap(struct gl_context *ctx,
> GLfloat x, y, tex[3];
> };
>
> - if (mipmap->ArrayObj == 0) {
> + if (mipmap->VAO == 0) {
> /* one-time setup */
> /* create vertex array object */
> - _mesa_GenVertexArraysAPPLE(1, &mipmap->ArrayObj);
> - _mesa_BindVertexArrayAPPLE(mipmap->ArrayObj);
> + _mesa_GenVertexArraysAPPLE(1, &mipmap->VAO);
> + _mesa_BindVertexArrayAPPLE(mipmap->VAO);
>
> /* create vertex array buffer */
> _mesa_GenBuffers(1, &mipmap->VBO);
> @@ -3451,11 +3451,11 @@ setup_glsl_generate_mipmap(struct gl_context *ctx,
> void *mem_ctx;
>
> /* Check if already initialized */
> - if (mipmap->ArrayObj == 0) {
> + if (mipmap->VAO == 0) {
>
> /* create vertex array object */
> - _mesa_GenVertexArrays(1, &mipmap->ArrayObj);
> - _mesa_BindVertexArray(mipmap->ArrayObj);
> + _mesa_GenVertexArrays(1, &mipmap->VAO);
> + _mesa_BindVertexArray(mipmap->VAO);
>
> /* create vertex array buffer */
> _mesa_GenBuffers(1, &mipmap->VBO);
> @@ -3555,10 +3555,10 @@ static void
> meta_glsl_generate_mipmap_cleanup(struct gl_context *ctx,
> struct gen_mipmap_state *mipmap)
> {
> - if (mipmap->ArrayObj == 0)
> + if (mipmap->VAO == 0)
> return;
> - _mesa_DeleteVertexArrays(1, &mipmap->ArrayObj);
> - mipmap->ArrayObj = 0;
> + _mesa_DeleteVertexArrays(1, &mipmap->VAO);
> + mipmap->VAO = 0;
> _mesa_DeleteBuffers(1, &mipmap->VBO);
> mipmap->VBO = 0;
>
> @@ -3634,7 +3634,7 @@ _mesa_meta_GenerateMipmap(struct gl_context *ctx, GLenum target,
> _mesa_set_enable(ctx, target, GL_TRUE);
> }
>
> - _mesa_BindVertexArray(mipmap->ArrayObj);
> + _mesa_BindVertexArray(mipmap->VAO);
> _mesa_BindBuffer(GL_ARRAY_BUFFER_ARB, mipmap->VBO);
>
> samplerSave = ctx->Texture.Unit[ctx->Texture.CurrentUnit].Sampler ?
> @@ -4023,10 +4023,10 @@ decompress_texture_image(struct gl_context *ctx,
> }
>
> /* setup VBO data */
> - if (decompress->ArrayObj == 0) {
> + if (decompress->VAO == 0) {
> /* create vertex array object */
> - _mesa_GenVertexArrays(1, &decompress->ArrayObj);
> - _mesa_BindVertexArray(decompress->ArrayObj);
> + _mesa_GenVertexArrays(1, &decompress->VAO);
> + _mesa_BindVertexArray(decompress->VAO);
>
> /* create vertex array buffer */
> _mesa_GenBuffers(1, &decompress->VBO);
> @@ -4041,7 +4041,7 @@ decompress_texture_image(struct gl_context *ctx,
> _mesa_EnableClientState(GL_TEXTURE_COORD_ARRAY);
> }
> else {
> - _mesa_BindVertexArray(decompress->ArrayObj);
> + _mesa_BindVertexArray(decompress->VAO);
> _mesa_BindBuffer(GL_ARRAY_BUFFER_ARB, decompress->VBO);
> }
>
> @@ -4236,13 +4236,13 @@ _mesa_meta_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z,
> MESA_META_VERTEX |
> MESA_META_VIEWPORT));
>
> - if (drawtex->ArrayObj == 0) {
> + if (drawtex->VAO == 0) {
> /* one-time setup */
> GLint active_texture;
>
> /* create vertex array object */
> - _mesa_GenVertexArrays(1, &drawtex->ArrayObj);
> - _mesa_BindVertexArray(drawtex->ArrayObj);
> + _mesa_GenVertexArrays(1, &drawtex->VAO);
> + _mesa_BindVertexArray(drawtex->VAO);
>
> /* create vertex array buffer */
> _mesa_GenBuffers(1, &drawtex->VBO);
> @@ -4266,7 +4266,7 @@ _mesa_meta_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z,
> _mesa_ClientActiveTexture(GL_TEXTURE0 + active_texture);
> }
> else {
> - _mesa_BindVertexArray(drawtex->ArrayObj);
> + _mesa_BindVertexArray(drawtex->VAO);
> _mesa_BindBuffer(GL_ARRAY_BUFFER_ARB, drawtex->VBO);
> }
>
> diff --git a/src/mesa/main/api_arrayelt.c b/src/mesa/main/api_arrayelt.c
> index f439b70..09f314b 100644
> --- a/src/mesa/main/api_arrayelt.c
> +++ b/src/mesa/main/api_arrayelt.c
> @@ -1472,7 +1472,7 @@ check_vbo(AEcontext *actx, struct gl_buffer_object *vbo)
> static inline void
> update_derived_client_arrays(struct gl_context *ctx)
> {
> - struct gl_array_object *arrayObj = ctx->Array.ArrayObj;
> + struct gl_array_object *arrayObj = ctx->Array.VAO;
>
> if (arrayObj->NewArrays) {
> _mesa_update_array_object_client_arrays(ctx, arrayObj);
> @@ -1494,7 +1494,7 @@ _ae_update_state(struct gl_context *ctx)
> AEarray *aa = actx->arrays; /* non-indexed arrays (ex: glNormal) */
> AEattrib *at = actx->attribs; /* indexed arrays (ex: glMultiTexCoord) */
> GLuint i;
> - struct gl_array_object *arrayObj = ctx->Array.ArrayObj;
> + struct gl_array_object *arrayObj = ctx->Array.VAO;
>
> actx->nr_vbos = 0;
>
> diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c
> index 6945584..41dfc38 100644
> --- a/src/mesa/main/api_validate.c
> +++ b/src/mesa/main/api_validate.c
> @@ -113,14 +113,14 @@ check_valid_to_render(struct gl_context *ctx, const char *function)
> case API_OPENGLES2:
> /* For ES2, we can draw if any vertex array is enabled (and we
> * should always have a vertex program/shader). */
> - if (ctx->Array.ArrayObj->_Enabled == 0x0 || !ctx->VertexProgram._Current)
> + if (ctx->Array.VAO->_Enabled == 0x0 || !ctx->VertexProgram._Current)
> return GL_FALSE;
> break;
>
> case API_OPENGLES:
> /* For OpenGL ES, only draw if we have vertex positions
> */
> - if (!ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_POS].Enabled)
> + if (!ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_POS].Enabled)
> return GL_FALSE;
> break;
>
> @@ -141,8 +141,8 @@ check_valid_to_render(struct gl_context *ctx, const char *function)
> /* Draw if we have vertex positions (GL_VERTEX_ARRAY or generic
> * array [0]).
> */
> - return (ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_POS].Enabled ||
> - ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_GENERIC0].Enabled);
> + return (ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_POS].Enabled ||
> + ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_GENERIC0].Enabled);
> }
> }
> break;
> @@ -180,15 +180,15 @@ check_index_bounds(struct gl_context *ctx, GLsizei count, GLenum type,
> memset(&ib, 0, sizeof(ib));
> ib.type = type;
> ib.ptr = indices;
> - ib.obj = ctx->Array.ArrayObj->ElementArrayBufferObj;
> + ib.obj = ctx->Array.VAO->ElementArrayBufferObj;
>
> vbo_get_minmax_indices(ctx, &prim, &ib, &min, &max, 1);
>
> if ((int)(min + basevertex) < 0 ||
> - max + basevertex >= ctx->Array.ArrayObj->_MaxElement) {
> + max + basevertex >= ctx->Array.VAO->_MaxElement) {
> /* the max element is out of bounds of one or more enabled arrays */
> _mesa_warning(ctx, "glDrawElements() index=%u is out of bounds (max=%u)",
> - max, ctx->Array.ArrayObj->_MaxElement);
> + max, ctx->Array.VAO->_MaxElement);
> return GL_FALSE;
> }
>
> @@ -435,10 +435,10 @@ _mesa_validate_DrawElements(struct gl_context *ctx,
> return GL_FALSE;
>
> /* Vertex buffer object tests */
> - if (_mesa_is_bufferobj(ctx->Array.ArrayObj->ElementArrayBufferObj)) {
> + if (_mesa_is_bufferobj(ctx->Array.VAO->ElementArrayBufferObj)) {
> /* use indices in the buffer object */
> /* make sure count doesn't go outside buffer bounds */
> - if (index_bytes(type, count) > ctx->Array.ArrayObj->ElementArrayBufferObj->Size) {
> + if (index_bytes(type, count) > ctx->Array.VAO->ElementArrayBufferObj->Size) {
> _mesa_warning(ctx, "glDrawElements index out of buffer bounds");
> return GL_FALSE;
> }
> @@ -493,12 +493,12 @@ _mesa_validate_MultiDrawElements(struct gl_context *ctx,
> return GL_FALSE;
>
> /* Vertex buffer object tests */
> - if (_mesa_is_bufferobj(ctx->Array.ArrayObj->ElementArrayBufferObj)) {
> + if (_mesa_is_bufferobj(ctx->Array.VAO->ElementArrayBufferObj)) {
> /* use indices in the buffer object */
> /* make sure count doesn't go outside buffer bounds */
> for (i = 0; i < primcount; i++) {
> if (index_bytes(type, count[i]) >
> - ctx->Array.ArrayObj->ElementArrayBufferObj->Size) {
> + ctx->Array.VAO->ElementArrayBufferObj->Size) {
> _mesa_warning(ctx,
> "glMultiDrawElements index out of buffer bounds");
> return GL_FALSE;
> @@ -570,10 +570,10 @@ _mesa_validate_DrawRangeElements(struct gl_context *ctx, GLenum mode,
> return GL_FALSE;
>
> /* Vertex buffer object tests */
> - if (_mesa_is_bufferobj(ctx->Array.ArrayObj->ElementArrayBufferObj)) {
> + if (_mesa_is_bufferobj(ctx->Array.VAO->ElementArrayBufferObj)) {
> /* use indices in the buffer object */
> /* make sure count doesn't go outside buffer bounds */
> - if (index_bytes(type, count) > ctx->Array.ArrayObj->ElementArrayBufferObj->Size) {
> + if (index_bytes(type, count) > ctx->Array.VAO->ElementArrayBufferObj->Size) {
> _mesa_warning(ctx, "glDrawRangeElements index out of buffer bounds");
> return GL_FALSE;
> }
> @@ -620,7 +620,7 @@ _mesa_validate_DrawArrays(struct gl_context *ctx,
> return GL_FALSE;
>
> if (ctx->Const.CheckArrayBounds) {
> - if (start + count > (GLint) ctx->Array.ArrayObj->_MaxElement)
> + if (start + count > (GLint) ctx->Array.VAO->_MaxElement)
> return GL_FALSE;
> }
>
> @@ -689,7 +689,7 @@ _mesa_validate_DrawArraysInstanced(struct gl_context *ctx, GLenum mode, GLint fi
> return GL_FALSE;
>
> if (ctx->Const.CheckArrayBounds) {
> - if (first + count > (GLint) ctx->Array.ArrayObj->_MaxElement)
> + if (first + count > (GLint) ctx->Array.VAO->_MaxElement)
> return GL_FALSE;
> }
>
> @@ -769,10 +769,10 @@ _mesa_validate_DrawElementsInstanced(struct gl_context *ctx,
> return GL_FALSE;
>
> /* Vertex buffer object tests */
> - if (_mesa_is_bufferobj(ctx->Array.ArrayObj->ElementArrayBufferObj)) {
> + if (_mesa_is_bufferobj(ctx->Array.VAO->ElementArrayBufferObj)) {
> /* use indices in the buffer object */
> /* make sure count doesn't go outside buffer bounds */
> - if (index_bytes(type, count) > ctx->Array.ArrayObj->ElementArrayBufferObj->Size) {
> + if (index_bytes(type, count) > ctx->Array.VAO->ElementArrayBufferObj->Size) {
> _mesa_warning(ctx,
> "glDrawElementsInstanced index out of buffer bounds");
> return GL_FALSE;
> @@ -901,7 +901,7 @@ valid_draw_indirect_elements(struct gl_context *ctx,
> * If no element array buffer is bound, an INVALID_OPERATION error is
> * generated.
> */
> - if (!_mesa_is_bufferobj(ctx->Array.ArrayObj->ElementArrayBufferObj)) {
> + if (!_mesa_is_bufferobj(ctx->Array.VAO->ElementArrayBufferObj)) {
> _mesa_error(ctx, GL_INVALID_OPERATION,
> "%s(no buffer bound to GL_ELEMENT_ARRAY_BUFFER)", name);
> return GL_FALSE;
> diff --git a/src/mesa/main/arrayobj.c b/src/mesa/main/arrayobj.c
> index fdcf172..9b4e7dd 100644
> --- a/src/mesa/main/arrayobj.c
> +++ b/src/mesa/main/arrayobj.c
> @@ -376,7 +376,7 @@ _mesa_update_array_object_client_arrays(struct gl_context *ctx,
> static void
> bind_vertex_array(struct gl_context *ctx, GLuint id, GLboolean genRequired)
> {
> - struct gl_array_object * const oldObj = ctx->Array.ArrayObj;
> + struct gl_array_object * const oldObj = ctx->Array.VAO;
> struct gl_array_object *newObj = NULL;
>
> ASSERT(oldObj != NULL);
> @@ -391,7 +391,7 @@ bind_vertex_array(struct gl_context *ctx, GLuint id, GLboolean genRequired)
> /* The spec says there is no array object named 0, but we use
> * one internally because it simplifies things.
> */
> - newObj = ctx->Array.DefaultArrayObj;
> + newObj = ctx->Array.DefaultVAO;
> }
> else {
> /* non-default array object */
> @@ -426,7 +426,7 @@ bind_vertex_array(struct gl_context *ctx, GLuint id, GLboolean genRequired)
> }
>
> ctx->NewState |= _NEW_ARRAY;
> - _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, newObj);
> + _mesa_reference_array_object(ctx, &ctx->Array.VAO, newObj);
>
> /* Pass BindVertexArray call to device driver */
> if (ctx->Driver.BindArrayObject && newObj)
> @@ -491,7 +491,7 @@ _mesa_DeleteVertexArrays(GLsizei n, const GLuint *ids)
> * for that object reverts to zero and the default vertex array
> * becomes current."
> */
> - if ( obj == ctx->Array.ArrayObj ) {
> + if ( obj == ctx->Array.VAO ) {
> _mesa_BindVertexArray(0);
> }
>
> diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c
> index 7b7cf0e..53528cf 100644
> --- a/src/mesa/main/attrib.c
> +++ b/src/mesa/main/attrib.c
> @@ -1483,7 +1483,7 @@ copy_array_attrib(struct gl_context *ctx,
> /* skip RebindArrays */
>
> if (!vbo_deleted)
> - copy_array_object(ctx, dest->ArrayObj, src->ArrayObj);
> + copy_array_object(ctx, dest->VAO, src->VAO);
>
> /* skip ArrayBufferObj */
> /* skip ElementArrayBufferObj */
> @@ -1499,15 +1499,15 @@ save_array_attrib(struct gl_context *ctx,
> {
> /* Set the Name, needed for restore, but do never overwrite.
> * Needs to match value in the object hash. */
> - dest->ArrayObj->Name = src->ArrayObj->Name;
> + dest->VAO->Name = src->VAO->Name;
> /* And copy all of the rest. */
> copy_array_attrib(ctx, dest, src, false);
>
> /* Just reference them here */
> _mesa_reference_buffer_object(ctx, &dest->ArrayBufferObj,
> src->ArrayBufferObj);
> - _mesa_reference_buffer_object(ctx, &dest->ArrayObj->ElementArrayBufferObj,
> - src->ArrayObj->ElementArrayBufferObj);
> + _mesa_reference_buffer_object(ctx, &dest->VAO->ElementArrayBufferObj,
> + src->VAO->ElementArrayBufferObj);
> }
>
> /**
> @@ -1530,13 +1530,13 @@ restore_array_attrib(struct gl_context *ctx,
> * The semantics of objects created using APPLE_vertex_array_objects behave
> * differently. These objects expect to be recreated by pop. Alas.
> */
> - const bool arb_vao = (src->ArrayObj->Name != 0
> - && src->ArrayObj->ARBsemantics);
> + const bool arb_vao = (src->VAO->Name != 0
> + && src->VAO->ARBsemantics);
>
> - if (arb_vao && !_mesa_IsVertexArray(src->ArrayObj->Name))
> + if (arb_vao && !_mesa_IsVertexArray(src->VAO->Name))
> return;
>
> - _mesa_BindVertexArrayAPPLE(src->ArrayObj->Name);
> + _mesa_BindVertexArrayAPPLE(src->VAO->Name);
>
> /* Restore or recreate the buffer objects by the names ... */
> if (!arb_vao
> @@ -1552,10 +1552,10 @@ restore_array_attrib(struct gl_context *ctx,
> }
>
> if (!arb_vao
> - || src->ArrayObj->ElementArrayBufferObj->Name == 0
> - || _mesa_IsBuffer(src->ArrayObj->ElementArrayBufferObj->Name))
> + || src->VAO->ElementArrayBufferObj->Name == 0
> + || _mesa_IsBuffer(src->VAO->ElementArrayBufferObj->Name))
> _mesa_BindBuffer(GL_ELEMENT_ARRAY_BUFFER_ARB,
> - src->ArrayObj->ElementArrayBufferObj->Name);
> + src->VAO->ElementArrayBufferObj->Name);
> }
>
> /**
> @@ -1567,14 +1567,14 @@ init_array_attrib_data(struct gl_context *ctx,
> struct gl_array_attrib *attrib)
> {
> /* Get a non driver gl_array_object. */
> - attrib->ArrayObj = CALLOC_STRUCT( gl_array_object );
> + attrib->VAO = CALLOC_STRUCT( gl_array_object );
>
> - if (attrib->ArrayObj == NULL) {
> + if (attrib->VAO == NULL) {
> _mesa_error(ctx, GL_OUT_OF_MEMORY, "glPushClientAttrib");
> return false;
> }
>
> - _mesa_initialize_array_object(ctx, attrib->ArrayObj, 0);
> + _mesa_initialize_array_object(ctx, attrib->VAO, 0);
> return true;
> }
>
> @@ -1589,8 +1589,8 @@ free_array_attrib_data(struct gl_context *ctx,
> {
> /* We use a non driver array object, so don't just unref since we would
> * end up using the drivers DeleteArrayObject function for deletion. */
> - _mesa_delete_array_object(ctx, attrib->ArrayObj);
> - attrib->ArrayObj = 0;
> + _mesa_delete_array_object(ctx, attrib->VAO);
> + attrib->VAO = 0;
> _mesa_reference_buffer_object(ctx, &attrib->ArrayBufferObj, NULL);
> }
>
> diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
> index 1f0c683..eb2fd68 100644
> --- a/src/mesa/main/bufferobj.c
> +++ b/src/mesa/main/bufferobj.c
> @@ -80,7 +80,7 @@ get_buffer_target(struct gl_context *ctx, GLenum target)
> case GL_ARRAY_BUFFER_ARB:
> return &ctx->Array.ArrayBufferObj;
> case GL_ELEMENT_ARRAY_BUFFER_ARB:
> - return &ctx->Array.ArrayObj->ElementArrayBufferObj;
> + return &ctx->Array.VAO->ElementArrayBufferObj;
> case GL_PIXEL_PACK_BUFFER_EXT:
> return &ctx->Pack.BufferObj;
> case GL_PIXEL_UNPACK_BUFFER_EXT:
> @@ -451,8 +451,8 @@ _mesa_reference_buffer_object_(struct gl_context *ctx,
> #if 0
> /* unfortunately, these tests are invalid during context tear-down */
> ASSERT(ctx->Array.ArrayBufferObj != bufObj);
> - ASSERT(ctx->Array.ArrayObj->ElementArrayBufferObj != bufObj);
> - ASSERT(ctx->Array.ArrayObj->Vertex.BufferObj != bufObj);
> + ASSERT(ctx->Array.VAO->ElementArrayBufferObj != bufObj);
> + ASSERT(ctx->Array.VAO->Vertex.BufferObj != bufObj);
> #endif
>
> ASSERT(ctx->Driver.DeleteBuffer);
> @@ -1082,7 +1082,7 @@ _mesa_DeleteBuffers(GLsizei n, const GLuint *ids)
> for (i = 0; i < n; i++) {
> struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, ids[i]);
> if (bufObj) {
> - struct gl_array_object *arrayObj = ctx->Array.ArrayObj;
> + struct gl_array_object *arrayObj = ctx->Array.VAO;
> GLuint j;
>
> ASSERT(bufObj->Name == ids[i] || bufObj == &DummyBufferObject);
> diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
> index b818ab4..b8c02d0 100644
> --- a/src/mesa/main/context.c
> +++ b/src/mesa/main/context.c
> @@ -1188,8 +1188,8 @@ _mesa_free_context_data( struct gl_context *ctx )
> _mesa_reference_fragprog(ctx, &ctx->FragmentProgram._Current, NULL);
> _mesa_reference_fragprog(ctx, &ctx->FragmentProgram._TexEnvProgram, NULL);
>
> - _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, NULL);
> - _mesa_reference_array_object(ctx, &ctx->Array.DefaultArrayObj, NULL);
> + _mesa_reference_array_object(ctx, &ctx->Array.VAO, NULL);
> + _mesa_reference_array_object(ctx, &ctx->Array.DefaultVAO, NULL);
>
> _mesa_free_attrib_data(ctx);
> _mesa_free_buffer_objects(ctx);
> diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c
> index 640db84..04552f7 100644
> --- a/src/mesa/main/enable.c
> +++ b/src/mesa/main/enable.c
> @@ -63,7 +63,7 @@ update_derived_primitive_restart_state(struct gl_context *ctx)
> static void
> client_state(struct gl_context *ctx, GLenum cap, GLboolean state)
> {
> - struct gl_array_object *arrayObj = ctx->Array.ArrayObj;
> + struct gl_array_object *arrayObj = ctx->Array.VAO;
> GLbitfield64 flag;
> GLboolean *var;
>
> @@ -1423,41 +1423,41 @@ _mesa_IsEnabled( GLenum cap )
> case GL_VERTEX_ARRAY:
> if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES)
> goto invalid_enum_error;
> - return ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_POS].Enabled;
> + return ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_POS].Enabled;
> case GL_NORMAL_ARRAY:
> if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES)
> goto invalid_enum_error;
> - return ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_NORMAL].Enabled;
> + return ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_NORMAL].Enabled;
> case GL_COLOR_ARRAY:
> if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES)
> goto invalid_enum_error;
> - return ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_COLOR0].Enabled;
> + return ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_COLOR0].Enabled;
> case GL_INDEX_ARRAY:
> if (ctx->API != API_OPENGL_COMPAT)
> goto invalid_enum_error;
> - return ctx->Array.ArrayObj->
> + return ctx->Array.VAO->
> VertexAttrib[VERT_ATTRIB_COLOR_INDEX].Enabled;
> case GL_TEXTURE_COORD_ARRAY:
> if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES)
> goto invalid_enum_error;
> - return ctx->Array.ArrayObj->
> + return ctx->Array.VAO->
> VertexAttrib[VERT_ATTRIB_TEX(ctx->Array.ActiveTexture)].Enabled;
> case GL_EDGE_FLAG_ARRAY:
> if (ctx->API != API_OPENGL_COMPAT)
> goto invalid_enum_error;
> - return ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_EDGEFLAG].Enabled;
> + return ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_EDGEFLAG].Enabled;
> case GL_FOG_COORDINATE_ARRAY_EXT:
> if (ctx->API != API_OPENGL_COMPAT)
> goto invalid_enum_error;
> - return ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_FOG].Enabled;
> + return ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_FOG].Enabled;
> case GL_SECONDARY_COLOR_ARRAY_EXT:
> if (ctx->API != API_OPENGL_COMPAT)
> goto invalid_enum_error;
> - return ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_COLOR1].Enabled;
> + return ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_COLOR1].Enabled;
> case GL_POINT_SIZE_ARRAY_OES:
> if (ctx->API != API_OPENGLES)
> goto invalid_enum_error;
> - return ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_POINT_SIZE].Enabled;
> + return ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_POINT_SIZE].Enabled;
>
> /* GL_ARB_texture_cube_map */
> case GL_TEXTURE_CUBE_MAP_ARB:
> diff --git a/src/mesa/main/ffvertex_prog.c b/src/mesa/main/ffvertex_prog.c
> index 4d71c55..c5583c9 100644
> --- a/src/mesa/main/ffvertex_prog.c
> +++ b/src/mesa/main/ffvertex_prog.c
> @@ -228,7 +228,7 @@ static void make_state_key( struct gl_context *ctx, struct state_key *key )
> if (ctx->Point._Attenuated)
> key->point_attenuated = 1;
>
> - if (ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_POINT_SIZE].Enabled)
> + if (ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_POINT_SIZE].Enabled)
> key->point_array = 1;
>
> if (ctx->Texture._TexGenEnabled ||
> diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
> index 3016f41..a74e13d 100644
> --- a/src/mesa/main/get.c
> +++ b/src/mesa/main/get.c
> @@ -642,7 +642,7 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu
> case GL_TEXTURE_COORD_ARRAY_SIZE:
> case GL_TEXTURE_COORD_ARRAY_TYPE:
> case GL_TEXTURE_COORD_ARRAY_STRIDE:
> - array = &ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_TEX(ctx->Array.ActiveTexture)];
> + array = &ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_TEX(ctx->Array.ActiveTexture)];
> v->value_int = *(GLuint *) ((char *) array + d->offset);
> break;
>
> @@ -828,7 +828,7 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu
> case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
> case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
> buffer_obj = (struct gl_buffer_object **)
> - ((char *) ctx->Array.ArrayObj + d->offset);
> + ((char *) ctx->Array.VAO + d->offset);
> v->value_int = (*buffer_obj)->Name;
> break;
> case GL_ARRAY_BUFFER_BINDING_ARB:
> @@ -836,10 +836,10 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu
> break;
> case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
> v->value_int =
> - ctx->Array.ArrayObj->VertexBinding[VERT_ATTRIB_TEX(ctx->Array.ActiveTexture)].BufferObj->Name;
> + ctx->Array.VAO->VertexBinding[VERT_ATTRIB_TEX(ctx->Array.ActiveTexture)].BufferObj->Name;
> break;
> case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
> - v->value_int = ctx->Array.ArrayObj->ElementArrayBufferObj->Name;
> + v->value_int = ctx->Array.VAO->ElementArrayBufferObj->Name;
> break;
>
> /* ARB_copy_buffer */
> @@ -880,7 +880,7 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu
> ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0;
> break;
> case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
> - v->value_int = ctx->Array.ArrayObj->VertexBinding[VERT_ATTRIB_POINT_SIZE].BufferObj->Name;
> + v->value_int = ctx->Array.VAO->VertexBinding[VERT_ATTRIB_POINT_SIZE].BufferObj->Name;
> break;
>
> case GL_FOG_COLOR:
> @@ -1188,7 +1188,7 @@ find_value(const char *func, GLenum pname, void **p, union value *v)
> *p = ((char *) ctx + d->offset);
> return d;
> case LOC_ARRAY:
> - *p = ((char *) ctx->Array.ArrayObj + d->offset);
> + *p = ((char *) ctx->Array.VAO + d->offset);
> return d;
> case LOC_TEXUNIT:
> unit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
> @@ -1851,7 +1851,7 @@ find_value_indexed(const char *func, GLenum pname, GLuint index, union value *v)
> goto invalid_enum;
> if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs)
> goto invalid_value;
> - v->value_int = ctx->Array.ArrayObj->VertexBinding[VERT_ATTRIB_GENERIC(index)].InstanceDivisor;
> + v->value_int = ctx->Array.VAO->VertexBinding[VERT_ATTRIB_GENERIC(index)].InstanceDivisor;
> return TYPE_INT;
>
> case GL_VERTEX_BINDING_OFFSET:
> @@ -1859,7 +1859,7 @@ find_value_indexed(const char *func, GLenum pname, GLuint index, union value *v)
> goto invalid_enum;
> if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs)
> goto invalid_value;
> - v->value_int = ctx->Array.ArrayObj->VertexBinding[VERT_ATTRIB_GENERIC(index)].Offset;
> + v->value_int = ctx->Array.VAO->VertexBinding[VERT_ATTRIB_GENERIC(index)].Offset;
> return TYPE_INT;
>
> case GL_VERTEX_BINDING_STRIDE:
> @@ -1867,7 +1867,7 @@ find_value_indexed(const char *func, GLenum pname, GLuint index, union value *v)
> goto invalid_enum;
> if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs)
> goto invalid_value;
> - v->value_int = ctx->Array.ArrayObj->VertexBinding[VERT_ATTRIB_GENERIC(index)].Stride;
> + v->value_int = ctx->Array.VAO->VertexBinding[VERT_ATTRIB_GENERIC(index)].Stride;
>
> /* ARB_shader_image_load_store */
> case GL_IMAGE_BINDING_NAME: {
> diff --git a/src/mesa/main/getstring.c b/src/mesa/main/getstring.c
> index b66e247..6741267 100644
> --- a/src/mesa/main/getstring.c
> +++ b/src/mesa/main/getstring.c
> @@ -200,42 +200,42 @@ _mesa_GetPointerv( GLenum pname, GLvoid **params )
> case GL_VERTEX_ARRAY_POINTER:
> if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES)
> goto invalid_pname;
> - *params = (GLvoid *) ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_POS].Ptr;
> + *params = (GLvoid *) ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_POS].Ptr;
> break;
> case GL_NORMAL_ARRAY_POINTER:
> if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES)
> goto invalid_pname;
> - *params = (GLvoid *) ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_NORMAL].Ptr;
> + *params = (GLvoid *) ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_NORMAL].Ptr;
> break;
> case GL_COLOR_ARRAY_POINTER:
> if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES)
> goto invalid_pname;
> - *params = (GLvoid *) ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_COLOR0].Ptr;
> + *params = (GLvoid *) ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_COLOR0].Ptr;
> break;
> case GL_SECONDARY_COLOR_ARRAY_POINTER_EXT:
> if (ctx->API != API_OPENGL_COMPAT)
> goto invalid_pname;
> - *params = (GLvoid *) ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_COLOR1].Ptr;
> + *params = (GLvoid *) ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_COLOR1].Ptr;
> break;
> case GL_FOG_COORDINATE_ARRAY_POINTER_EXT:
> if (ctx->API != API_OPENGL_COMPAT)
> goto invalid_pname;
> - *params = (GLvoid *) ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_FOG].Ptr;
> + *params = (GLvoid *) ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_FOG].Ptr;
> break;
> case GL_INDEX_ARRAY_POINTER:
> if (ctx->API != API_OPENGL_COMPAT)
> goto invalid_pname;
> - *params = (GLvoid *) ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_COLOR_INDEX].Ptr;
> + *params = (GLvoid *) ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_COLOR_INDEX].Ptr;
> break;
> case GL_TEXTURE_COORD_ARRAY_POINTER:
> if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES)
> goto invalid_pname;
> - *params = (GLvoid *) ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_TEX(clientUnit)].Ptr;
> + *params = (GLvoid *) ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_TEX(clientUnit)].Ptr;
> break;
> case GL_EDGE_FLAG_ARRAY_POINTER:
> if (ctx->API != API_OPENGL_COMPAT)
> goto invalid_pname;
> - *params = (GLvoid *) ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_EDGEFLAG].Ptr;
> + *params = (GLvoid *) ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_EDGEFLAG].Ptr;
> break;
> case GL_FEEDBACK_BUFFER_POINTER:
> if (ctx->API != API_OPENGL_COMPAT)
> @@ -250,7 +250,7 @@ _mesa_GetPointerv( GLenum pname, GLvoid **params )
> case GL_POINT_SIZE_ARRAY_POINTER_OES:
> if (ctx->API != API_OPENGLES)
> goto invalid_pname;
> - *params = (GLvoid *) ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_POINT_SIZE].Ptr;
> + *params = (GLvoid *) ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_POINT_SIZE].Ptr;
> break;
> case GL_DEBUG_CALLBACK_FUNCTION_ARB:
> if (!_mesa_is_desktop_gl(ctx))
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index 925d204..f97cfc2 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -1615,10 +1615,10 @@ struct gl_array_object
> struct gl_array_attrib
> {
> /** Currently bound array object. See _mesa_BindVertexArrayAPPLE() */
> - struct gl_array_object *ArrayObj;
> + struct gl_array_object *VAO;
>
> /** The default vertex array object */
> - struct gl_array_object *DefaultArrayObj;
> + struct gl_array_object *DefaultVAO;
>
> /** Array objects (GL_ARB/APPLE_vertex_array_object) */
> struct _mesa_HashTable *Objects;
> diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c
> index bdebbc1..b6593dd 100644
> --- a/src/mesa/main/state.c
> +++ b/src/mesa/main/state.c
> @@ -417,11 +417,11 @@ _mesa_update_state_locked( struct gl_context *ctx )
> }
>
> if (new_state & _NEW_ARRAY)
> - _mesa_update_array_object_client_arrays(ctx, ctx->Array.ArrayObj);
> + _mesa_update_array_object_client_arrays(ctx, ctx->Array.VAO);
>
> if (ctx->Const.CheckArrayBounds &&
> new_state & (_NEW_ARRAY | _NEW_PROGRAM | _NEW_BUFFER_OBJECT)) {
> - _mesa_update_array_object_max_element(ctx, ctx->Array.ArrayObj);
> + _mesa_update_array_object_max_element(ctx, ctx->Array.VAO);
> }
>
> out:
> @@ -439,7 +439,7 @@ _mesa_update_state_locked( struct gl_context *ctx )
> new_state = ctx->NewState | new_prog_state;
> ctx->NewState = 0;
> ctx->Driver.UpdateState(ctx, new_state);
> - ctx->Array.ArrayObj->NewArrays = 0x0;
> + ctx->Array.VAO->NewArrays = 0x0;
> }
>
>
> diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c
> index b73a396..d4e50c3 100644
> --- a/src/mesa/main/varray.c
> +++ b/src/mesa/main/varray.c
> @@ -112,7 +112,7 @@ static void
> vertex_attrib_binding(struct gl_context *ctx, GLuint attribIndex,
> GLuint bindingIndex)
> {
> - struct gl_array_object *arrayObj = ctx->Array.ArrayObj;
> + struct gl_array_object *arrayObj = ctx->Array.VAO;
> struct gl_vertex_attrib_array *array = &arrayObj->VertexAttrib[attribIndex];
>
> if (array->VertexBinding != bindingIndex) {
> @@ -139,7 +139,7 @@ bind_vertex_buffer(struct gl_context *ctx, GLuint index,
> struct gl_buffer_object *vbo,
> GLintptr offset, GLsizei stride)
> {
> - struct gl_array_object *arrayObj = ctx->Array.ArrayObj;
> + struct gl_array_object *arrayObj = ctx->Array.VAO;
> struct gl_vertex_buffer_binding *binding = &arrayObj->VertexBinding[index];
>
> if (binding->BufferObj != vbo ||
> @@ -166,7 +166,7 @@ static void
> vertex_binding_divisor(struct gl_context *ctx, GLuint bindingIndex,
> GLuint divisor)
> {
> - struct gl_array_object *arrayObj = ctx->Array.ArrayObj;
> + struct gl_array_object *arrayObj = ctx->Array.VAO;
> struct gl_vertex_buffer_binding *binding =
> &arrayObj->VertexBinding[bindingIndex];
>
> @@ -329,7 +329,7 @@ update_array_format(struct gl_context *ctx,
> elementSize = _mesa_bytes_per_vertex_attrib(size, type);
> assert(elementSize != -1);
>
> - array = &ctx->Array.ArrayObj->VertexAttrib[attrib];
> + array = &ctx->Array.VAO->VertexAttrib[attrib];
> array->Size = size;
> array->Type = type;
> array->Format = format;
> @@ -338,7 +338,7 @@ update_array_format(struct gl_context *ctx,
> array->RelativeOffset = relativeOffset;
> array->_ElementSize = elementSize;
>
> - ctx->Array.ArrayObj->NewArrays |= VERT_BIT(attrib);
> + ctx->Array.VAO->NewArrays |= VERT_BIT(attrib);
> ctx->NewState |= _NEW_ARRAY;
>
> return true;
> @@ -384,7 +384,7 @@ update_array(struct gl_context *ctx,
> * The check for VBOs is handled below.
> */
> if (ctx->API == API_OPENGL_CORE
> - && (ctx->Array.ArrayObj == ctx->Array.DefaultArrayObj)) {
> + && (ctx->Array.VAO == ctx->Array.DefaultVAO)) {
> _mesa_error(ctx, GL_INVALID_OPERATION, "%s(no array object bound)",
> func);
> return;
> @@ -407,7 +407,7 @@ update_array(struct gl_context *ctx,
> * to the ARRAY_BUFFER buffer object binding point (see section
> * 2.9.6), and the pointer argument is not NULL."
> */
> - if (ptr != NULL && ctx->Array.ArrayObj->ARBsemantics &&
> + if (ptr != NULL && ctx->Array.VAO->ARBsemantics &&
> !_mesa_is_bufferobj(ctx->Array.ArrayBufferObj)) {
> _mesa_error(ctx, GL_INVALID_OPERATION, "%s(non-VBO array)", func);
> return;
> @@ -422,7 +422,7 @@ update_array(struct gl_context *ctx,
> vertex_attrib_binding(ctx, attrib, attrib);
>
> /* The Stride and Ptr fields are not set by update_array_format() */
> - array = &ctx->Array.ArrayObj->VertexAttrib[attrib];
> + array = &ctx->Array.VAO->VertexAttrib[attrib];
> array->Stride = stride;
> array->Ptr = (const GLvoid *) ptr;
>
> @@ -673,7 +673,7 @@ _mesa_EnableVertexAttribArray(GLuint index)
> return;
> }
>
> - arrayObj = ctx->Array.ArrayObj;
> + arrayObj = ctx->Array.VAO;
>
> ASSERT(VERT_ATTRIB_GENERIC(index) < Elements(arrayObj->_VertexAttrib));
>
> @@ -699,7 +699,7 @@ _mesa_DisableVertexAttribArray(GLuint index)
> return;
> }
>
> - arrayObj = ctx->Array.ArrayObj;
> + arrayObj = ctx->Array.VAO;
>
> ASSERT(VERT_ATTRIB_GENERIC(index) < Elements(arrayObj->_VertexAttrib));
>
> @@ -722,7 +722,7 @@ static GLuint
> get_vertex_array_attrib(struct gl_context *ctx, GLuint index, GLenum pname,
> const char *caller)
> {
> - const struct gl_array_object *arrayObj = ctx->Array.ArrayObj;
> + const struct gl_array_object *arrayObj = ctx->Array.VAO;
> const struct gl_vertex_attrib_array *array;
>
> if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs) {
> @@ -801,7 +801,7 @@ get_current_attrib(struct gl_context *ctx, GLuint index, const char *function)
> return NULL;
> }
>
> - ASSERT(VERT_ATTRIB_GENERIC(index) < Elements(ctx->Array.ArrayObj->_VertexAttrib));
> + ASSERT(VERT_ATTRIB_GENERIC(index) < Elements(ctx->Array.VAO->_VertexAttrib));
>
> FLUSH_CURRENT(ctx, 0);
> return ctx->Current.Attrib[VERT_ATTRIB_GENERIC(index)];
> @@ -923,9 +923,9 @@ _mesa_GetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid **pointer)
> return;
> }
>
> - ASSERT(VERT_ATTRIB_GENERIC(index) < Elements(ctx->Array.ArrayObj->_VertexAttrib));
> + ASSERT(VERT_ATTRIB_GENERIC(index) < Elements(ctx->Array.VAO->_VertexAttrib));
>
> - *pointer = (GLvoid *) ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_GENERIC(index)].Ptr;
> + *pointer = (GLvoid *) ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_GENERIC(index)].Ptr;
> }
>
>
> @@ -1314,7 +1314,7 @@ _mesa_VertexAttribDivisor(GLuint index, GLuint divisor)
> return;
> }
>
> - ASSERT(genericIndex < Elements(ctx->Array.ArrayObj->VertexAttrib));
> + ASSERT(genericIndex < Elements(ctx->Array.VAO->VertexAttrib));
>
> /* The ARB_vertex_attrib_binding spec says:
> *
> @@ -1365,7 +1365,7 @@ _mesa_BindVertexBuffer(GLuint bindingIndex, GLuint buffer, GLintptr offset,
> GLsizei stride)
> {
> GET_CURRENT_CONTEXT(ctx);
> - const struct gl_array_object *arrayObj = ctx->Array.ArrayObj;
> + const struct gl_array_object *arrayObj = ctx->Array.VAO;
> struct gl_buffer_object *vbo;
>
> ASSERT_OUTSIDE_BEGIN_END(ctx);
> @@ -1376,7 +1376,7 @@ _mesa_BindVertexBuffer(GLuint bindingIndex, GLuint buffer, GLintptr offset,
> * is bound."
> */
> if (ctx->API == API_OPENGL_CORE &&
> - ctx->Array.ArrayObj == ctx->Array.DefaultArrayObj) {
> + ctx->Array.VAO == ctx->Array.DefaultVAO) {
> _mesa_error(ctx, GL_INVALID_OPERATION,
> "glBindVertexBuffer(No array object bound)");
> return;
> @@ -1468,7 +1468,7 @@ _mesa_VertexAttribFormat(GLuint attribIndex, GLint size, GLenum type,
> * - ..."
> */
> if (ctx->API == API_OPENGL_CORE &&
> - ctx->Array.ArrayObj == ctx->Array.DefaultArrayObj) {
> + ctx->Array.VAO == ctx->Array.DefaultVAO) {
> _mesa_error(ctx, GL_INVALID_OPERATION,
> "glVertexAttribFormat(No array object bound)");
> return;
> @@ -1515,7 +1515,7 @@ _mesa_VertexAttribIFormat(GLuint attribIndex, GLint size, GLenum type,
> * - ..."
> */
> if (ctx->API == API_OPENGL_CORE &&
> - ctx->Array.ArrayObj == ctx->Array.DefaultArrayObj) {
> + ctx->Array.VAO == ctx->Array.DefaultVAO) {
> _mesa_error(ctx, GL_INVALID_OPERATION,
> "glVertexAttribIFormat(No array object bound)");
> return;
> @@ -1563,7 +1563,7 @@ _mesa_VertexAttribLFormat(GLuint attribIndex, GLint size, GLenum type,
> * that this is an oversight.
> */
> if (ctx->API == API_OPENGL_CORE &&
> - ctx->Array.ArrayObj == ctx->Array.DefaultArrayObj) {
> + ctx->Array.VAO == ctx->Array.DefaultVAO) {
> _mesa_error(ctx, GL_INVALID_OPERATION,
> "glVertexAttribLFormat(No array object bound)");
> return;
> @@ -1603,7 +1603,7 @@ _mesa_VertexAttribBinding(GLuint attribIndex, GLuint bindingIndex)
> * is bound."
> */
> if (ctx->API == API_OPENGL_CORE &&
> - ctx->Array.ArrayObj == ctx->Array.DefaultArrayObj) {
> + ctx->Array.VAO == ctx->Array.DefaultVAO) {
> _mesa_error(ctx, GL_INVALID_OPERATION,
> "glVertexAttribBinding(No array object bound)");
> return;
> @@ -1633,7 +1633,7 @@ _mesa_VertexAttribBinding(GLuint attribIndex, GLuint bindingIndex)
> }
>
> ASSERT(VERT_ATTRIB_GENERIC(attribIndex) <
> - Elements(ctx->Array.ArrayObj->VertexAttrib));
> + Elements(ctx->Array.VAO->VertexAttrib));
>
> vertex_attrib_binding(ctx, VERT_ATTRIB_GENERIC(attribIndex),
> VERT_ATTRIB_GENERIC(bindingIndex));
> @@ -1657,7 +1657,7 @@ _mesa_VertexBindingDivisor(GLuint bindingIndex, GLuint divisor)
> * is bound."
> */
> if (ctx->API == API_OPENGL_CORE &&
> - ctx->Array.ArrayObj == ctx->Array.DefaultArrayObj) {
> + ctx->Array.VAO == ctx->Array.DefaultVAO) {
> _mesa_error(ctx, GL_INVALID_OPERATION,
> "glVertexBindingDivisor(No array object bound)");
> return;
> @@ -1758,7 +1758,7 @@ print_array(const char *name, GLint index, const struct gl_client_array *array)
> void
> _mesa_print_arrays(struct gl_context *ctx)
> {
> - struct gl_array_object *arrayObj = ctx->Array.ArrayObj;
> + struct gl_array_object *arrayObj = ctx->Array.VAO;
> GLuint i;
>
> _mesa_update_array_object_max_element(ctx, arrayObj);
> @@ -1786,9 +1786,9 @@ _mesa_print_arrays(struct gl_context *ctx)
> void
> _mesa_init_varray(struct gl_context *ctx)
> {
> - ctx->Array.DefaultArrayObj = ctx->Driver.NewArrayObject(ctx, 0);
> - _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj,
> - ctx->Array.DefaultArrayObj);
> + ctx->Array.DefaultVAO = ctx->Driver.NewArrayObject(ctx, 0);
> + _mesa_reference_array_object(ctx, &ctx->Array.VAO,
> + ctx->Array.DefaultVAO);
> ctx->Array.ActiveTexture = 0; /* GL_ARB_multitexture */
>
> ctx->Array.Objects = _mesa_NewHashTable();
> diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c
> index 16aee3b..fd27f4b 100644
> --- a/src/mesa/vbo/vbo_exec_array.c
> +++ b/src/mesa/vbo/vbo_exec_array.c
> @@ -287,15 +287,15 @@ static void
> check_draw_elements_data(struct gl_context *ctx, GLsizei count, GLenum elemType,
> const void *elements, GLint basevertex)
> {
> - struct gl_array_object *arrayObj = ctx->Array.ArrayObj;
> + struct gl_array_object *arrayObj = ctx->Array.VAO;
> const void *elemMap;
> GLint i, k;
>
> - if (_mesa_is_bufferobj(ctx->Array.ArrayObj->ElementArrayBufferObj)) {
> + if (_mesa_is_bufferobj(ctx->Array.VAO->ElementArrayBufferObj)) {
> elemMap = ctx->Driver.MapBufferRange(ctx, 0,
> - ctx->Array.ArrayObj->ElementArrayBufferObj->Size,
> + ctx->Array.VAO->ElementArrayBufferObj->Size,
> GL_MAP_READ_BIT,
> - ctx->Array.ArrayObj->ElementArrayBufferObj);
> + ctx->Array.VAO->ElementArrayBufferObj);
> elements = ADD_POINTERS(elements, elemMap);
> }
>
> @@ -324,7 +324,7 @@ check_draw_elements_data(struct gl_context *ctx, GLsizei count, GLenum elemType,
> }
>
> if (_mesa_is_bufferobj(arrayObj->ElementArrayBufferObj)) {
> - ctx->Driver.UnmapBuffer(ctx, ctx->Array.ArrayObj->ElementArrayBufferObj);
> + ctx->Driver.UnmapBuffer(ctx, ctx->Array.VAO->ElementArrayBufferObj);
> }
>
> for (k = 0; k < Elements(arrayObj->_VertexAttrib); k++) {
> @@ -352,7 +352,7 @@ print_draw_arrays(struct gl_context *ctx,
> {
> struct vbo_context *vbo = vbo_context(ctx);
> struct vbo_exec_context *exec = &vbo->exec;
> - struct gl_array_object *arrayObj = ctx->Array.ArrayObj;
> + struct gl_array_object *arrayObj = ctx->Array.VAO;
> int i;
>
> printf("vbo_exec_DrawArrays(mode 0x%x, start %d, count %d):\n",
> @@ -405,7 +405,7 @@ recalculate_input_bindings(struct gl_context *ctx)
> {
> struct vbo_context *vbo = vbo_context(ctx);
> struct vbo_exec_context *exec = &vbo->exec;
> - struct gl_client_array *vertexAttrib = ctx->Array.ArrayObj->_VertexAttrib;
> + struct gl_client_array *vertexAttrib = ctx->Array.VAO->_VertexAttrib;
> const struct gl_client_array **inputs = &exec->array.inputs[0];
> GLbitfield64 const_inputs = 0x0;
> GLuint i;
> @@ -883,15 +883,15 @@ dump_element_buffer(struct gl_context *ctx, GLenum type)
> {
> const GLvoid *map =
> ctx->Driver.MapBufferRange(ctx, 0,
> - ctx->Array.ArrayObj->ElementArrayBufferObj->Size,
> + ctx->Array.VAO->ElementArrayBufferObj->Size,
> GL_MAP_READ_BIT,
> - ctx->Array.ArrayObj->ElementArrayBufferObj);
> + ctx->Array.VAO->ElementArrayBufferObj);
> switch (type) {
> case GL_UNSIGNED_BYTE:
> {
> const GLubyte *us = (const GLubyte *) map;
> GLint i;
> - for (i = 0; i < ctx->Array.ArrayObj->ElementArrayBufferObj->Size; i++) {
> + for (i = 0; i < ctx->Array.VAO->ElementArrayBufferObj->Size; i++) {
> printf("%02x ", us[i]);
> if (i % 32 == 31)
> printf("\n");
> @@ -903,7 +903,7 @@ dump_element_buffer(struct gl_context *ctx, GLenum type)
> {
> const GLushort *us = (const GLushort *) map;
> GLint i;
> - for (i = 0; i < ctx->Array.ArrayObj->ElementArrayBufferObj->Size / 2; i++) {
> + for (i = 0; i < ctx->Array.VAO->ElementArrayBufferObj->Size / 2; i++) {
> printf("%04x ", us[i]);
> if (i % 16 == 15)
> printf("\n");
> @@ -915,7 +915,7 @@ dump_element_buffer(struct gl_context *ctx, GLenum type)
> {
> const GLuint *us = (const GLuint *) map;
> GLint i;
> - for (i = 0; i < ctx->Array.ArrayObj->ElementArrayBufferObj->Size / 4; i++) {
> + for (i = 0; i < ctx->Array.VAO->ElementArrayBufferObj->Size / 4; i++) {
> printf("%08x ", us[i]);
> if (i % 8 == 7)
> printf("\n");
> @@ -927,7 +927,7 @@ dump_element_buffer(struct gl_context *ctx, GLenum type)
> ;
> }
>
> - ctx->Driver.UnmapBuffer(ctx, ctx->Array.ArrayObj->ElementArrayBufferObj);
> + ctx->Driver.UnmapBuffer(ctx, ctx->Array.VAO->ElementArrayBufferObj);
> }
> #endif
>
> @@ -955,7 +955,7 @@ vbo_validated_drawrangeelements(struct gl_context *ctx, GLenum mode,
>
> ib.count = count;
> ib.type = type;
> - ib.obj = ctx->Array.ArrayObj->ElementArrayBufferObj;
> + ib.obj = ctx->Array.VAO->ElementArrayBufferObj;
> ib.ptr = indices;
>
> prim[0].begin = 1;
> @@ -1041,7 +1041,7 @@ vbo_exec_DrawRangeElementsBaseVertex(GLenum mode,
> /* _MaxElement was computed, so we can use it.
> * This path is used for drivers which need strict bounds checking.
> */
> - max_element = ctx->Array.ArrayObj->_MaxElement;
> + max_element = ctx->Array.VAO->_MaxElement;
> }
> else {
> /* Generally, hardware drivers don't need to know the buffer bounds
> @@ -1097,7 +1097,7 @@ vbo_exec_DrawRangeElementsBaseVertex(GLenum mode,
> "(start %u, end %u, type 0x%x, count %d) ElemBuf %u, "
> "base %d\n",
> start, end, type, count,
> - ctx->Array.ArrayObj->ElementArrayBufferObj->Name,
> + ctx->Array.VAO->ElementArrayBufferObj->Name,
> basevertex);
> }
>
> @@ -1350,13 +1350,13 @@ vbo_validated_multidrawelements(struct gl_context *ctx, GLenum mode,
> * subranges of the index buffer as one large index buffer may lead to
> * us reading unmapped memory.
> */
> - if (!_mesa_is_bufferobj(ctx->Array.ArrayObj->ElementArrayBufferObj))
> + if (!_mesa_is_bufferobj(ctx->Array.VAO->ElementArrayBufferObj))
> fallback = GL_TRUE;
>
> if (!fallback) {
> ib.count = (max_index_ptr - min_index_ptr) / index_type_size;
> ib.type = type;
> - ib.obj = ctx->Array.ArrayObj->ElementArrayBufferObj;
> + ib.obj = ctx->Array.VAO->ElementArrayBufferObj;
> ib.ptr = (void *)min_index_ptr;
>
> for (i = 0; i < primcount; i++) {
> @@ -1387,7 +1387,7 @@ vbo_validated_multidrawelements(struct gl_context *ctx, GLenum mode,
> continue;
> ib.count = count[i];
> ib.type = type;
> - ib.obj = ctx->Array.ArrayObj->ElementArrayBufferObj;
> + ib.obj = ctx->Array.VAO->ElementArrayBufferObj;
> ib.ptr = indices[i];
>
> prim[0].begin = 1;
> @@ -1657,7 +1657,7 @@ vbo_validated_drawelementsindirect(struct gl_context *ctx,
>
> ib.count = 0; /* unknown */
> ib.type = type;
> - ib.obj = ctx->Array.ArrayObj->ElementArrayBufferObj;
> + ib.obj = ctx->Array.VAO->ElementArrayBufferObj;
> ib.ptr = NULL;
>
> memset(prim, 0, sizeof(prim));
> @@ -1705,7 +1705,7 @@ vbo_validated_multidrawelementsindirect(struct gl_context *ctx,
>
> ib.count = 0; /* unknown */
> ib.type = type;
> - ib.obj = ctx->Array.ArrayObj->ElementArrayBufferObj;
> + ib.obj = ctx->Array.VAO->ElementArrayBufferObj;
> ib.ptr = NULL;
>
> prim[0].begin = 1;
> diff --git a/src/mesa/vbo/vbo_save_api.c b/src/mesa/vbo/vbo_save_api.c
> index 43243e6..01c4c0e 100644
> --- a/src/mesa/vbo/vbo_save_api.c
> +++ b/src/mesa/vbo/vbo_save_api.c
> @@ -1138,9 +1138,9 @@ _save_OBE_DrawElements(GLenum mode, GLsizei count, GLenum type,
>
> _ae_map_vbos(ctx);
>
> - if (_mesa_is_bufferobj(ctx->Array.ArrayObj->ElementArrayBufferObj))
> + if (_mesa_is_bufferobj(ctx->Array.VAO->ElementArrayBufferObj))
> indices =
> - ADD_POINTERS(ctx->Array.ArrayObj->ElementArrayBufferObj->Pointer, indices);
> + ADD_POINTERS(ctx->Array.VAO->ElementArrayBufferObj->Pointer, indices);
>
> vbo_save_NotifyBegin(ctx, (mode | VBO_SAVE_PRIM_WEAK |
> VBO_SAVE_PRIM_NO_CURRENT_UPDATE));
>
More information about the mesa-dev
mailing list