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