Home | History | Annotate | Download | only in main
      1 /*
      2  * Mesa 3-D graphics library
      3  *
      4  * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved.
      5  * Copyright (C) 2009-2011  VMware, Inc.  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  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
     21  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
     22  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     23  * OTHER DEALINGS IN THE SOFTWARE.
     24  */
     25 
     26 
     27 #ifndef PBO_H
     28 #define PBO_H
     29 
     30 
     31 #include "mtypes.h"
     32 
     33 
     34 extern GLboolean
     35 _mesa_validate_pbo_access(GLuint dimensions,
     36                           const struct gl_pixelstore_attrib *pack,
     37                           GLsizei width, GLsizei height, GLsizei depth,
     38                           GLenum format, GLenum type, GLsizei clientMemSize,
     39                           const GLvoid *ptr);
     40 
     41 extern const GLvoid *
     42 _mesa_map_pbo_source(struct gl_context *ctx,
     43                      const struct gl_pixelstore_attrib *unpack,
     44                      const GLvoid *src);
     45 
     46 extern const GLvoid *
     47 _mesa_map_validate_pbo_source(struct gl_context *ctx,
     48                               GLuint dimensions,
     49                               const struct gl_pixelstore_attrib *unpack,
     50                               GLsizei width, GLsizei height, GLsizei depth,
     51                               GLenum format, GLenum type, GLsizei clientMemSize,
     52                               const GLvoid *ptr, const char *where);
     53 
     54 extern void
     55 _mesa_unmap_pbo_source(struct gl_context *ctx,
     56                        const struct gl_pixelstore_attrib *unpack);
     57 
     58 extern void *
     59 _mesa_map_pbo_dest(struct gl_context *ctx,
     60                    const struct gl_pixelstore_attrib *pack,
     61                    GLvoid *dest);
     62 
     63 extern GLvoid *
     64 _mesa_map_validate_pbo_dest(struct gl_context *ctx,
     65                             GLuint dimensions,
     66                             const struct gl_pixelstore_attrib *unpack,
     67                             GLsizei width, GLsizei height, GLsizei depth,
     68                             GLenum format, GLenum type, GLsizei clientMemSize,
     69                             GLvoid *ptr, const char *where);
     70 
     71 extern void
     72 _mesa_unmap_pbo_dest(struct gl_context *ctx,
     73                      const struct gl_pixelstore_attrib *pack);
     74 
     75 
     76 extern const GLvoid *
     77 _mesa_validate_pbo_teximage(struct gl_context *ctx, GLuint dimensions,
     78 			    GLsizei width, GLsizei height, GLsizei depth,
     79 			    GLenum format, GLenum type, const GLvoid *pixels,
     80 			    const struct gl_pixelstore_attrib *unpack,
     81 			    const char *funcName);
     82 
     83 extern const GLvoid *
     84 _mesa_validate_pbo_compressed_teximage(struct gl_context *ctx,
     85                                     GLuint dimensions, GLsizei imageSize,
     86                                     const GLvoid *pixels,
     87                                     const struct gl_pixelstore_attrib *packing,
     88                                     const char *funcName);
     89 
     90 extern void
     91 _mesa_unmap_teximage_pbo(struct gl_context *ctx,
     92                          const struct gl_pixelstore_attrib *unpack);
     93 
     94 
     95 extern bool
     96 _mesa_validate_pbo_source(struct gl_context *ctx, GLuint dimensions,
     97                           const struct gl_pixelstore_attrib *unpack,
     98                           GLsizei width, GLsizei height, GLsizei depth,
     99                           GLenum format, GLenum type,
    100                           GLsizei clientMemSize,
    101                           const GLvoid *ptr, const char *where);
    102 
    103 extern bool
    104 _mesa_validate_pbo_source_compressed(struct gl_context *ctx, GLuint dimensions,
    105                                      const struct gl_pixelstore_attrib *unpack,
    106                                      GLsizei imageSize, const GLvoid *ptr,
    107                                      const char *where);
    108 
    109 #endif
    110