arrayobj.h revision 3464ebd5
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
313464ebd5Sriastradh#include "glheader.h"
323464ebd5Sriastradh
333464ebd5Sriastradhstruct gl_context;
347117f1b4Smrg
357117f1b4Smrg/**
367117f1b4Smrg * \file arrayobj.h
377117f1b4Smrg * Functions for the GL_APPLE_vertex_array_object extension.
387117f1b4Smrg *
397117f1b4Smrg * \author Ian Romanick <idr@us.ibm.com>
407117f1b4Smrg * \author Brian Paul
417117f1b4Smrg */
427117f1b4Smrg
437117f1b4Smrg/*
447117f1b4Smrg * Internal functions
457117f1b4Smrg */
467117f1b4Smrg
474a49301eSmrgextern struct gl_array_object *
483464ebd5Sriastradh_mesa_new_array_object( struct gl_context *ctx, GLuint name );
497117f1b4Smrg
504a49301eSmrgextern void
513464ebd5Sriastradh_mesa_delete_array_object( struct gl_context *ctx, struct gl_array_object *obj );
527117f1b4Smrg
534a49301eSmrgextern void
543464ebd5Sriastradh_mesa_reference_array_object(struct gl_context *ctx,
554a49301eSmrg                             struct gl_array_object **ptr,
564a49301eSmrg                             struct gl_array_object *arrayObj);
577117f1b4Smrg
584a49301eSmrgextern void
593464ebd5Sriastradh_mesa_initialize_array_object( struct gl_context *ctx,
604a49301eSmrg                               struct gl_array_object *obj, GLuint name );
617117f1b4Smrg
627117f1b4Smrg
634a49301eSmrgextern void
643464ebd5Sriastradh_mesa_update_array_object_max_element(struct gl_context *ctx,
654a49301eSmrg                                      struct gl_array_object *arrayObj);
667117f1b4Smrg
677117f1b4Smrg
687117f1b4Smrg/*
697117f1b4Smrg * API functions
707117f1b4Smrg */
717117f1b4Smrg
724a49301eSmrg
734a49301eSmrgvoid GLAPIENTRY _mesa_BindVertexArray( GLuint id );
744a49301eSmrg
757117f1b4Smrgvoid GLAPIENTRY _mesa_BindVertexArrayAPPLE( GLuint id );
767117f1b4Smrg
777117f1b4Smrgvoid GLAPIENTRY _mesa_DeleteVertexArraysAPPLE(GLsizei n, const GLuint *ids);
787117f1b4Smrg
794a49301eSmrgvoid GLAPIENTRY _mesa_GenVertexArrays(GLsizei n, GLuint *arrays);
804a49301eSmrg
817117f1b4Smrgvoid GLAPIENTRY _mesa_GenVertexArraysAPPLE(GLsizei n, GLuint *buffer);
827117f1b4Smrg
837117f1b4SmrgGLboolean GLAPIENTRY _mesa_IsVertexArrayAPPLE( GLuint id );
847117f1b4Smrg
857117f1b4Smrg#endif /* ARRAYOBJ_H */
86