image.h revision fa4525e289b475b928a7b2c4055af9dd7fe46600
1/* $Id: image.h,v 1.10 2000/08/21 14:22:24 brianp Exp $ */ 2 3/* 4 * Mesa 3-D graphics library 5 * Version: 3.5 6 * 7 * Copyright (C) 1999-2000 Brian Paul All Rights Reserved. 8 * 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: 15 * 16 * The above copyright notice and this permission notice shall be included 17 * in all copies or substantial portions of the Software. 18 * 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. 25 */ 26 27 28#ifndef IMAGE_H 29#define IMAGE_H 30 31 32#include "types.h" 33 34 35extern const struct gl_pixelstore_attrib _mesa_native_packing; 36 37 38extern void 39_mesa_swap2( GLushort *p, GLuint n ); 40 41extern void 42_mesa_swap4( GLuint *p, GLuint n ); 43 44extern GLint 45_mesa_sizeof_type( GLenum type ); 46 47extern GLint 48_mesa_sizeof_packed_type( GLenum type ); 49 50extern GLint 51_mesa_components_in_format( GLenum format ); 52 53extern GLint 54_mesa_bytes_per_pixel( GLenum format, GLenum type ); 55 56extern GLboolean 57_mesa_is_legal_format_and_type( GLenum format, GLenum type ); 58 59 60extern GLvoid * 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 ); 65 66 67extern GLint 68_mesa_image_row_stride( const struct gl_pixelstore_attrib *packing, 69 GLint width, GLenum format, GLenum type ); 70 71 72extern void 73_mesa_unpack_polygon_stipple( const GLubyte *pattern, GLuint dest[32], 74 const struct gl_pixelstore_attrib *unpacking ); 75 76 77extern void 78_mesa_pack_polygon_stipple( const GLuint pattern[32], GLubyte *dest, 79 const struct gl_pixelstore_attrib *packing ); 80 81 82extern void 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 GLuint transferOps ); 88 89 90extern void 91_mesa_unpack_ubyte_color_span( GLcontext *ctx, 92 GLuint n, GLenum dstFormat, GLubyte dest[], 93 GLenum srcFormat, GLenum srcType, 94 const GLvoid *source, 95 const struct gl_pixelstore_attrib *unpacking, 96 GLuint transferOps ); 97 98 99extern void 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 GLuint transferOps, GLboolean clamp ); 106 107 108extern void 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 GLuint transferOps ); 114 115 116extern void 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 GLuint transferOps ); 122 123 124extern void 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 GLuint transferOps ); 129 130 131extern void * 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 ); 135 136 137extern GLvoid * 138_mesa_unpack_bitmap( GLint width, GLint height, const GLubyte *pixels, 139 const struct gl_pixelstore_attrib *packing ); 140 141extern void 142_mesa_pack_bitmap( GLint width, GLint height, const GLubyte *source, 143 GLubyte *dest, const struct gl_pixelstore_attrib *packing ); 144 145 146#endif 147