1b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul/* 2b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * Mesa 3-D graphics library 3b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * 4b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. 5b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * Copyright (C) 2009-2011 VMware, Inc. All Rights Reserved. 6b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * 7b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * Permission is hereby granted, free of charge, to any person obtaining a 8b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * copy of this software and associated documentation files (the "Software"), 9b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * to deal in the Software without restriction, including without limitation 10b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * the rights to use, copy, modify, merge, publish, distribute, sublicense, 11b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * and/or sell copies of the Software, and to permit persons to whom the 12b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * Software is furnished to do so, subject to the following conditions: 13b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * 14b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * The above copyright notice and this permission notice shall be included 15b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * in all copies or substantial portions of the Software. 16b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * 17b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 21b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul */ 24b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 25b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 26b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul#ifndef PBO_H 27b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul#define PBO_H 28b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 29b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 30b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul#include "mtypes.h" 31b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 32b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 33b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paulextern GLboolean 34b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul_mesa_validate_pbo_access(GLuint dimensions, 35b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul const struct gl_pixelstore_attrib *pack, 36b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul GLsizei width, GLsizei height, GLsizei depth, 376b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul GLenum format, GLenum type, GLsizei clientMemSize, 386b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul const GLvoid *ptr); 39b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 40b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paulextern const GLvoid * 41b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul_mesa_map_pbo_source(struct gl_context *ctx, 42b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul const struct gl_pixelstore_attrib *unpack, 43b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul const GLvoid *src); 44b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 45b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paulextern const GLvoid * 46b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul_mesa_map_validate_pbo_source(struct gl_context *ctx, 47b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul GLuint dimensions, 48b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul const struct gl_pixelstore_attrib *unpack, 49b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul GLsizei width, GLsizei height, GLsizei depth, 506b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul GLenum format, GLenum type, GLsizei clientMemSize, 516b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul const GLvoid *ptr, const char *where); 52b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 53b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paulextern void 54b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul_mesa_unmap_pbo_source(struct gl_context *ctx, 55b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul const struct gl_pixelstore_attrib *unpack); 56b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 57b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paulextern void * 58b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul_mesa_map_pbo_dest(struct gl_context *ctx, 59b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul const struct gl_pixelstore_attrib *pack, 60b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul GLvoid *dest); 61b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 62b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paulextern GLvoid * 63b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul_mesa_map_validate_pbo_dest(struct gl_context *ctx, 64b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul GLuint dimensions, 65b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul const struct gl_pixelstore_attrib *unpack, 66b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul GLsizei width, GLsizei height, GLsizei depth, 676b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul GLenum format, GLenum type, GLsizei clientMemSize, 686b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul GLvoid *ptr, const char *where); 69b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 70b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paulextern void 71b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul_mesa_unmap_pbo_dest(struct gl_context *ctx, 72b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul const struct gl_pixelstore_attrib *pack); 73b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 74b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 75b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paulextern const GLvoid * 76b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul_mesa_validate_pbo_teximage(struct gl_context *ctx, GLuint dimensions, 77b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul GLsizei width, GLsizei height, GLsizei depth, 78b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul GLenum format, GLenum type, const GLvoid *pixels, 79b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul const struct gl_pixelstore_attrib *unpack, 80b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul const char *funcName); 81b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 82b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paulextern const GLvoid * 83b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul_mesa_validate_pbo_compressed_teximage(struct gl_context *ctx, 84b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul GLsizei imageSize, const GLvoid *pixels, 85b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul const struct gl_pixelstore_attrib *packing, 86b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul const char *funcName); 87b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 88b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paulextern void 89b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul_mesa_unmap_teximage_pbo(struct gl_context *ctx, 90b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul const struct gl_pixelstore_attrib *unpack); 91b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 92b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul 93b70610b9823fc7dc3672735c11be1a75fbb1a2a4Brian Paul#endif 94