1 /* $Id: image.h,v 1.8 2000/04/18 14:32:10 brianp Exp $ */
4 * Mesa 3-D graphics library
7 * Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
9 * Permission is hereby granted, free of charge, to any person obtaining a
10 * copy of this software and associated documentation files (the "Software"),
11 * to deal in the Software without restriction, including without limitation
12 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
13 * and/or sell copies of the Software, and to permit persons to whom the
14 * Software is furnished to do so, subject to the following conditions:
16 * The above copyright notice and this permission notice shall be included
17 * in all copies or substantial portions of the Software.
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
23 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
24 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35 extern const struct gl_pixelstore_attrib _mesa_native_packing
;
39 _mesa_swap2( GLushort
*p
, GLuint n
);
42 _mesa_swap4( GLuint
*p
, GLuint n
);
45 _mesa_sizeof_type( GLenum type
);
48 _mesa_sizeof_packed_type( GLenum type
);
51 _mesa_components_in_format( GLenum format
);
54 _mesa_bytes_per_pixel( GLenum format
, GLenum type
);
57 _mesa_is_legal_format_and_type( GLenum format
, GLenum type
);
61 _mesa_image_address( const struct gl_pixelstore_attrib
*packing
,
62 const GLvoid
*image
, GLsizei width
,
63 GLsizei height
, GLenum format
, GLenum type
,
64 GLint img
, GLint row
, GLint column
);
68 _mesa_image_row_stride( const struct gl_pixelstore_attrib
*packing
,
69 GLint width
, GLenum format
, GLenum type
);
73 _mesa_unpack_polygon_stipple( const GLubyte
*pattern
, GLuint dest
[32],
74 const struct gl_pixelstore_attrib
*unpacking
);
78 _mesa_pack_polygon_stipple( const GLuint pattern
[32], GLubyte
*dest
,
79 const struct gl_pixelstore_attrib
*packing
);
83 _mesa_pack_rgba_span( GLcontext
*ctx
,
84 GLuint n
, CONST GLubyte rgba
[][4],
85 GLenum format
, GLenum type
, GLvoid
*dest
,
86 const struct gl_pixelstore_attrib
*packing
,
87 GLboolean applyTransferOps
);
91 _mesa_unpack_ubyte_color_span( GLcontext
*ctx
,
92 GLuint n
, GLenum dstFormat
, GLubyte dest
[],
93 GLenum srcFormat
, GLenum srcType
,
95 const struct gl_pixelstore_attrib
*unpacking
,
96 GLboolean applyTransferOps
);
100 _mesa_unpack_float_color_span( GLcontext
*ctx
,
101 GLuint n
, GLenum dstFormat
, GLfloat dest
[],
102 GLenum srcFormat
, GLenum srcType
,
103 const GLvoid
*source
,
104 const struct gl_pixelstore_attrib
*unpacking
,
105 GLboolean applyTransferOps
);
109 _mesa_unpack_index_span( const GLcontext
*ctx
, GLuint n
,
110 GLenum dstType
, GLvoid
*dest
,
111 GLenum srcType
, const GLvoid
*source
,
112 const struct gl_pixelstore_attrib
*unpacking
,
113 GLboolean applyTransferOps
);
117 _mesa_unpack_stencil_span( const GLcontext
*ctx
, GLuint n
,
118 GLenum dstType
, GLvoid
*dest
,
119 GLenum srcType
, const GLvoid
*source
,
120 const struct gl_pixelstore_attrib
*unpacking
,
121 GLboolean applyTransferOps
);
125 _mesa_unpack_depth_span( const GLcontext
*ctx
, GLuint n
, GLdepth
*dest
,
126 GLenum srcType
, const GLvoid
*source
,
127 const struct gl_pixelstore_attrib
*unpacking
,
128 GLboolean applyTransferOps
);
132 _mesa_unpack_image( GLsizei width
, GLsizei height
, GLsizei depth
,
133 GLenum format
, GLenum type
, const GLvoid
*pixels
,
134 const struct gl_pixelstore_attrib
*unpack
);
138 _mesa_unpack_bitmap( GLint width
, GLint height
, const GLubyte
*pixels
,
139 const struct gl_pixelstore_attrib
*packing
);
142 _mesa_pack_bitmap( GLint width
, GLint height
, const GLubyte
*source
,
143 GLubyte
*dest
, const struct gl_pixelstore_attrib
*packing
);