arrayobj.h revision 4a49301e
17117f1b4Smrg/*
27117f1b4Smrg * Mesa 3-D graphics library
34a49301eSmrg * Version:  7.6
47117f1b4Smrg *
57117f1b4Smrg * Copyright (C) 1999-2004  Brian Paul   All Rights Reserved.
67117f1b4Smrg * (C) Copyright IBM Corporation 2006
74a49301eSmrg * Copyright (C) 2009  VMware, Inc.  All Rights Reserved.
87117f1b4Smrg *
97117f1b4Smrg * Permission is hereby granted, free of charge, to any person obtaining a
107117f1b4Smrg * copy of this software and associated documentation files (the "Software"),
117117f1b4Smrg * to deal in the Software without restriction, including without limitation
127117f1b4Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
137117f1b4Smrg * and/or sell copies of the Software, and to permit persons to whom the
147117f1b4Smrg * Software is furnished to do so, subject to the following conditions:
157117f1b4Smrg *
167117f1b4Smrg * The above copyright notice and this permission notice shall be included
177117f1b4Smrg * in all copies or substantial portions of the Software.
187117f1b4Smrg *
197117f1b4Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
207117f1b4Smrg * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
217117f1b4Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
227117f1b4Smrg * BRIAN PAUL OR IBM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
237117f1b4Smrg * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
247117f1b4Smrg * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
257117f1b4Smrg * SOFTWARE.
267117f1b4Smrg */
277117f1b4Smrg
287117f1b4Smrg#ifndef ARRAYOBJ_H
297117f1b4Smrg#define ARRAYOBJ_H
307117f1b4Smrg
317117f1b4Smrg#include "context.h"
327117f1b4Smrg
337117f1b4Smrg/**
347117f1b4Smrg * \file arrayobj.h
357117f1b4Smrg * Functions for the GL_APPLE_vertex_array_object extension.
367117f1b4Smrg *
377117f1b4Smrg * \author Ian Romanick <idr@us.ibm.com>
387117f1b4Smrg * \author Brian Paul
397117f1b4Smrg */
407117f1b4Smrg
417117f1b4Smrg/*
427117f1b4Smrg * Internal functions
437117f1b4Smrg */
447117f1b4Smrg
454a49301eSmrgextern struct gl_array_object *
464a49301eSmrg_mesa_new_array_object( GLcontext *ctx, GLuint name );
477117f1b4Smrg
484a49301eSmrgextern void
494a49301eSmrg_mesa_delete_array_object( GLcontext *ctx, struct gl_array_object *obj );
507117f1b4Smrg
514a49301eSmrgextern void
524a49301eSmrg_mesa_reference_array_object(GLcontext *ctx,
534a49301eSmrg                             struct gl_array_object **ptr,
544a49301eSmrg                             struct gl_array_object *arrayObj);
557117f1b4Smrg
564a49301eSmrgextern void
574a49301eSmrg_mesa_initialize_array_object( GLcontext *ctx,
584a49301eSmrg                               struct gl_array_object *obj, GLuint name );
597117f1b4Smrg
607117f1b4Smrg
614a49301eSmrgextern void
624a49301eSmrg_mesa_update_array_object_max_element(GLcontext *ctx,
634a49301eSmrg                                      struct gl_array_object *arrayObj);
647117f1b4Smrg
657117f1b4Smrg
667117f1b4Smrg/*
677117f1b4Smrg * API functions
687117f1b4Smrg */
697117f1b4Smrg
704a49301eSmrg
714a49301eSmrgvoid GLAPIENTRY _mesa_BindVertexArray( GLuint id );
724a49301eSmrg
737117f1b4Smrgvoid GLAPIENTRY _mesa_BindVertexArrayAPPLE( GLuint id );
747117f1b4Smrg
757117f1b4Smrgvoid GLAPIENTRY _mesa_DeleteVertexArraysAPPLE(GLsizei n, const GLuint *ids);
767117f1b4Smrg
774a49301eSmrgvoid GLAPIENTRY _mesa_GenVertexArrays(GLsizei n, GLuint *arrays);
784a49301eSmrg
797117f1b4Smrgvoid GLAPIENTRY _mesa_GenVertexArraysAPPLE(GLsizei n, GLuint *buffer);
807117f1b4Smrg
817117f1b4SmrgGLboolean GLAPIENTRY _mesa_IsVertexArrayAPPLE( GLuint id );
827117f1b4Smrg
837117f1b4Smrg#endif /* ARRAYOBJ_H */
84