added _mesa_image_row_stride()
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* $Id: image.c,v 1.20 2000/03/19 01:10:12 brianp Exp $ */
|
||||
/* $Id: image.c,v 1.21 2000/03/21 00:48:53 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -489,6 +489,44 @@ GLvoid *gl_pixel_addr_in_image( const struct gl_pixelstore_attrib *packing,
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Compute the stride between image rows (in bytes) for the given
|
||||
* pixel packing parameters and image width, format and type.
|
||||
*/
|
||||
GLint
|
||||
_mesa_image_row_stride( const struct gl_pixelstore_attrib *packing,
|
||||
GLint width, GLenum format, GLenum type )
|
||||
{
|
||||
ASSERT(packing);
|
||||
if (type == GL_BITMAP) {
|
||||
/* BITMAP data */
|
||||
if (packing->RowLength == 0) {
|
||||
GLint bytes = (width + 7) / 8;
|
||||
return bytes;
|
||||
}
|
||||
else {
|
||||
GLint bytes = (packing->RowLength + 7) / 8;
|
||||
return bytes;
|
||||
}
|
||||
}
|
||||
else {
|
||||
/* Non-BITMAP data */
|
||||
const GLint bytesPerPixel = gl_bytes_per_pixel(format, type);
|
||||
if (bytesPerPixel <= 0)
|
||||
return -1; /* error */
|
||||
if (packing->RowLength == 0) {
|
||||
GLint bytes = bytesPerPixel * width;
|
||||
return bytes;
|
||||
}
|
||||
else {
|
||||
GLint bytes = bytesPerPixel * packing->RowLength;
|
||||
return bytes;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Unpack a 32x32 pixel polygon stipple from user memory using the
|
||||
* current pixel unpack settings.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: image.h,v 1.4 2000/03/13 18:31:51 brianp Exp $ */
|
||||
/* $Id: image.h,v 1.5 2000/03/21 00:48:53 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -61,6 +61,11 @@ gl_pixel_addr_in_image( const struct gl_pixelstore_attrib *packing,
|
||||
GLint img, GLint row, GLint column );
|
||||
|
||||
|
||||
extern GLint
|
||||
_mesa_image_row_stride( const struct gl_pixelstore_attrib *packing,
|
||||
GLint width, GLenum format, GLenum type );
|
||||
|
||||
|
||||
extern void
|
||||
_mesa_unpack_polygon_stipple( const GLubyte *pattern, GLuint dest[32],
|
||||
const struct gl_pixelstore_attrib *unpacking );
|
||||
|
Reference in New Issue
Block a user