bufferobj.h revision ee34e6ef716bb630440299ac1efbc2055ef09ffd
1/* 2 * Mesa 3-D graphics library 3 * Version: 6.3 4 * 5 * Copyright (C) 1999-2004 Brian Paul All Rights Reserved. 6 * 7 * Permission is hereby granted, free of charge, to any person obtaining a 8 * copy of this software and associated documentation files (the "Software"), 9 * to deal in the Software without restriction, including without limitation 10 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 11 * and/or sell copies of the Software, and to permit persons to whom the 12 * Software is furnished to do so, subject to the following conditions: 13 * 14 * The above copyright notice and this permission notice shall be included 15 * in all copies or substantial portions of the Software. 16 * 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 21 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 */ 24 25 26 27#ifndef BUFFEROBJ_H 28#define BUFFEROBJ_H 29 30 31#include "context.h" 32 33 34/* 35 * Internal functions 36 */ 37 38extern void 39_mesa_init_buffer_objects( GLcontext *ctx ); 40 41extern struct gl_buffer_object * 42_mesa_new_buffer_object( GLcontext *ctx, GLuint name, GLenum target ); 43 44extern void 45_mesa_delete_buffer_object( GLcontext *ctx, struct gl_buffer_object *bufObj ); 46 47extern void 48_mesa_initialize_buffer_object( struct gl_buffer_object *obj, 49 GLuint name, GLenum target ); 50 51extern void 52_mesa_save_buffer_object( GLcontext *ctx, struct gl_buffer_object *obj ); 53 54extern void 55_mesa_remove_buffer_object( GLcontext *ctx, struct gl_buffer_object *bufObj ); 56 57extern void 58_mesa_buffer_data( GLcontext *ctx, GLenum target, GLsizeiptrARB size, 59 const GLvoid * data, GLenum usage, 60 struct gl_buffer_object * bufObj ); 61 62extern void 63_mesa_buffer_subdata( GLcontext *ctx, GLenum target, GLintptrARB offset, 64 GLsizeiptrARB size, const GLvoid * data, 65 struct gl_buffer_object * bufObj ); 66 67extern void 68_mesa_buffer_get_subdata( GLcontext *ctx, GLenum target, GLintptrARB offset, 69 GLsizeiptrARB size, GLvoid * data, 70 struct gl_buffer_object * bufObj ); 71 72extern void * 73_mesa_buffer_map( GLcontext *ctx, GLenum target, GLenum access, 74 struct gl_buffer_object * bufObj ); 75 76extern GLboolean 77_mesa_buffer_unmap( GLcontext *ctx, GLenum target, 78 struct gl_buffer_object * bufObj ); 79 80extern GLboolean 81_mesa_validate_pbo_access(GLuint dimensions, 82 const struct gl_pixelstore_attrib *pack, 83 GLsizei width, GLsizei height, GLsizei depth, 84 GLenum format, GLenum type, const GLvoid *ptr); 85 86extern void 87_mesa_unbind_buffer_object( GLcontext *ctx, struct gl_buffer_object *bufObj ); 88 89/* 90 * API functions 91 */ 92 93extern void GLAPIENTRY 94_mesa_BindBufferARB(GLenum target, GLuint buffer); 95 96extern void GLAPIENTRY 97_mesa_DeleteBuffersARB(GLsizei n, const GLuint * buffer); 98 99extern void GLAPIENTRY 100_mesa_GenBuffersARB(GLsizei n, GLuint * buffer); 101 102extern GLboolean GLAPIENTRY 103_mesa_IsBufferARB(GLuint buffer); 104 105extern void GLAPIENTRY 106_mesa_BufferDataARB(GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage); 107 108extern void GLAPIENTRY 109_mesa_BufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data); 110 111extern void GLAPIENTRY 112_mesa_GetBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, void * data); 113 114extern void * GLAPIENTRY 115_mesa_MapBufferARB(GLenum target, GLenum access); 116 117extern GLboolean GLAPIENTRY 118_mesa_UnmapBufferARB(GLenum target); 119 120extern void GLAPIENTRY 121_mesa_GetBufferParameterivARB(GLenum target, GLenum pname, GLint *params); 122 123extern void GLAPIENTRY 124_mesa_GetBufferPointervARB(GLenum target, GLenum pname, GLvoid **params); 125 126#endif 127