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) 1999-2010  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 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 #ifndef PACK_H
     27 #define PACK_H
     28 
     29 
     30 #include "mtypes.h"
     31 
     32 
     33 extern void
     34 _mesa_unpack_polygon_stipple(const GLubyte *pattern, GLuint dest[32],
     35                              const struct gl_pixelstore_attrib *unpacking);
     36 
     37 
     38 extern void
     39 _mesa_pack_polygon_stipple(const GLuint pattern[32], GLubyte *dest,
     40                            const struct gl_pixelstore_attrib *packing);
     41 
     42 
     43 extern GLvoid *
     44 _mesa_unpack_bitmap(GLint width, GLint height, const GLubyte *pixels,
     45                     const struct gl_pixelstore_attrib *packing);
     46 
     47 extern void
     48 _mesa_pack_bitmap(GLint width, GLint height, const GLubyte *source,
     49                   GLubyte *dest, const struct gl_pixelstore_attrib *packing);
     50 
     51 
     52 extern void
     53 _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n,
     54                            GLfloat rgba[][4],
     55                            GLenum dstFormat, GLenum dstType, GLvoid *dstAddr,
     56                            const struct gl_pixelstore_attrib *dstPacking,
     57                            GLbitfield transferOps);
     58 
     59 
     60 extern void
     61 _mesa_unpack_color_span_ubyte(struct gl_context *ctx,
     62                              GLuint n, GLenum dstFormat, GLubyte dest[],
     63                              GLenum srcFormat, GLenum srcType,
     64                              const GLvoid *source,
     65                              const struct gl_pixelstore_attrib *srcPacking,
     66                              GLbitfield transferOps);
     67 
     68 
     69 extern void
     70 _mesa_unpack_color_span_float(struct gl_context *ctx,
     71                               GLuint n, GLenum dstFormat, GLfloat dest[],
     72                               GLenum srcFormat, GLenum srcType,
     73                               const GLvoid *source,
     74                               const struct gl_pixelstore_attrib *srcPacking,
     75                               GLbitfield transferOps);
     76 
     77 extern void
     78 _mesa_unpack_color_span_uint(struct gl_context *ctx,
     79                              GLuint n, GLenum dstFormat, GLuint *dest,
     80                              GLenum srcFormat, GLenum srcType,
     81                              const GLvoid *source,
     82                              const struct gl_pixelstore_attrib *srcPacking);
     83 
     84 extern void
     85 _mesa_unpack_dudv_span_byte(struct gl_context *ctx,
     86                             GLuint n, GLenum dstFormat, GLbyte dest[],
     87                             GLenum srcFormat, GLenum srcType,
     88                             const GLvoid *source,
     89                             const struct gl_pixelstore_attrib *srcPacking,
     90                             GLbitfield transferOps);
     91 
     92 extern void
     93 _mesa_unpack_index_span(struct gl_context *ctx, GLuint n,
     94                         GLenum dstType, GLvoid *dest,
     95                         GLenum srcType, const GLvoid *source,
     96                         const struct gl_pixelstore_attrib *srcPacking,
     97                         GLbitfield transferOps);
     98 
     99 
    100 extern void
    101 _mesa_pack_index_span(struct gl_context *ctx, GLuint n,
    102                       GLenum dstType, GLvoid *dest, const GLuint *source,
    103                       const struct gl_pixelstore_attrib *dstPacking,
    104                       GLbitfield transferOps);
    105 
    106 
    107 extern void
    108 _mesa_unpack_stencil_span(struct gl_context *ctx, GLuint n,
    109                           GLenum dstType, GLvoid *dest,
    110                           GLenum srcType, const GLvoid *source,
    111                           const struct gl_pixelstore_attrib *srcPacking,
    112                           GLbitfield transferOps);
    113 
    114 extern void
    115 _mesa_pack_stencil_span(struct gl_context *ctx, GLuint n,
    116                         GLenum dstType, GLvoid *dest, const GLubyte *source,
    117                         const struct gl_pixelstore_attrib *dstPacking);
    118 
    119 
    120 extern void
    121 _mesa_unpack_depth_span(struct gl_context *ctx, GLuint n,
    122                         GLenum dstType, GLvoid *dest, GLuint depthMax,
    123                         GLenum srcType, const GLvoid *source,
    124                         const struct gl_pixelstore_attrib *srcPacking);
    125 
    126 extern void
    127 _mesa_pack_depth_span(struct gl_context *ctx, GLuint n, GLvoid *dest,
    128                       GLenum dstType, const GLfloat *depthSpan,
    129                       const struct gl_pixelstore_attrib *dstPacking);
    130 
    131 
    132 extern void
    133 _mesa_pack_depth_stencil_span(struct gl_context *ctx,GLuint n,
    134                               GLenum dstType, GLuint *dest,
    135                               const GLfloat *depthVals,
    136                               const GLubyte *stencilVals,
    137                               const struct gl_pixelstore_attrib *dstPacking);
    138 
    139 
    140 extern void *
    141 _mesa_unpack_image(GLuint dimensions,
    142                    GLsizei width, GLsizei height, GLsizei depth,
    143                    GLenum format, GLenum type, const GLvoid *pixels,
    144                    const struct gl_pixelstore_attrib *unpack);
    145 
    146 
    147 void
    148 _mesa_pack_rgba_span_from_uints(struct gl_context *ctx, GLuint n, GLuint rgba[][4],
    149                                 GLenum dstFormat, GLenum dstType,
    150                                 GLvoid *dstAddr);
    151 
    152 
    153 void
    154 _mesa_pack_rgba_span_from_ints(struct gl_context *ctx, GLuint n, GLint rgba[][4],
    155                                GLenum dstFormat, GLenum dstType,
    156                                GLvoid *dstAddr);
    157 
    158 
    159 extern void
    160 _mesa_rebase_rgba_float(GLuint n, GLfloat rgba[][4], GLenum baseFormat);
    161 
    162 extern void
    163 _mesa_rebase_rgba_uint(GLuint n, GLuint rgba[][4], GLenum baseFormat);
    164 
    165 #endif
    166