diff options
Diffstat (limited to 'nx-X11/lib/X11/ImUtil.c')
-rw-r--r-- | nx-X11/lib/X11/ImUtil.c | 222 |
1 files changed, 109 insertions, 113 deletions
diff --git a/nx-X11/lib/X11/ImUtil.c b/nx-X11/lib/X11/ImUtil.c index dabe3d5b6..00b6f7db8 100644 --- a/nx-X11/lib/X11/ImUtil.c +++ b/nx-X11/lib/X11/ImUtil.c @@ -49,8 +49,8 @@ static int _XAddPixel(XImage *, long); static unsigned char const _lomask[0x09] = { 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff }; static unsigned char const _himask[0x09] = { 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00 }; -/* These two convenience routines return the scanline_pad and bits_per_pixel - associated with a specific depth of ZPixmap format image for a +/* These two convenience routines return the scanline_pad and bits_per_pixel + associated with a specific depth of ZPixmap format image for a display. */ int @@ -60,14 +60,14 @@ _XGetScanlinePad( { register ScreenFormat *fmt = dpy->pixmap_format; register int i; - + for (i = dpy->nformats + 1; --i; ++fmt) if (fmt->depth == depth) return(fmt->scanline_pad); - + return(dpy->bitmap_pad); } - + int _XGetBitsPerPixel( Display *dpy, @@ -75,7 +75,7 @@ _XGetBitsPerPixel( { register ScreenFormat *fmt = dpy->pixmap_format; register int i; - + for (i = dpy->nformats + 1; --i; ++fmt) if (fmt->depth == depth) return(fmt->bits_per_pixel); @@ -87,7 +87,7 @@ _XGetBitsPerPixel( return 16; return 32; } - + /* * This module provides rudimentary manipulation routines for image data @@ -111,7 +111,7 @@ _XGetBitsPerPixel( * * The logic contained in these routines makes several assumptions about * the image data structures, and at least for current implementations - * these assumptions are believed to be true. They are: + * these assumptions are believed to be true. They are: * * For all formats, bits_per_pixel is less than or equal to 32. * For XY formats, bitmap_unit is always less than or equal to bitmap_pad. @@ -211,31 +211,31 @@ static void _putbits( break; } numbits = numbits - dstoffset; - } + } } /* * Macros - * + * * The ROUNDUP macro rounds up a quantity to the specified boundary, * then truncates to bytes. * - * The XYNORMALIZE macro determines whether XY format data requires + * The XYNORMALIZE macro determines whether XY format data requires * normalization and calls a routine to do so if needed. The logic in - * this module is designed for LSBFirst byte and bit order, so + * this module is designed for LSBFirst byte and bit order, so * normalization is done as required to present the data in this order. * - * The ZNORMALIZE macro performs byte and nibble order normalization if + * The ZNORMALIZE macro performs byte and nibble order normalization if * required for Z format data. * * The XYINDEX macro computes the index to the starting byte (char) boundary * for a bitmap_unit containing a pixel with coordinates x and y for image * data in XY format. - * - * The ZINDEX macro computes the index to the starting byte (char) boundary + * + * The ZINDEX macro computes the index to the starting byte (char) boundary * for a pixel with coordinates x and y for image data in ZPixmap format. - * + * */ #if defined(Lynx) && defined(ROUNDUP) @@ -299,26 +299,25 @@ void _XInitImageFuncPtrs ( /* * CreateImage - * - * Allocates the memory necessary for an XImage data structure. - * Initializes the structure with "default" values and returns XImage. - * + * + * Allocates the memory necessary for an XImage data structure. + * Initializes the structure with "default" values and returns XImage. + * */ -XImage *XCreateImage (dpy, visual, depth, format, offset, data, width, height, - xpad, image_bytes_per_line) - register Display *dpy; - register Visual *visual; - unsigned int depth; - int format; - int offset; /*How many pixels from the start of the data does the +XImage *XCreateImage ( + register Display *dpy, + register Visual *visual, + unsigned int depth, + int format, + int offset, /*How many pixels from the start of the data does the picture to be transmitted start?*/ - char *data; - unsigned int width; - unsigned int height; - int xpad; - int image_bytes_per_line; + char *data, + unsigned int width, + unsigned int height, + int xpad, + int image_bytes_per_line) /*How many bytes between a pixel on one line and the pixel with the same X coordinate on the next line? 0 means XCreateImage can calculate it.*/ @@ -350,7 +349,7 @@ XImage *XCreateImage (dpy, visual, depth, format, offset, data, width, height, else { image->red_mask = image->green_mask = image->blue_mask = 0; } - if (format == ZPixmap) + if (format == ZPixmap) { bits_per_pixel = _XGetBitsPerPixel(dpy, (int) depth); } @@ -364,7 +363,7 @@ XImage *XCreateImage (dpy, visual, depth, format, offset, data, width, height, */ { if (format == ZPixmap) - min_bytes_per_line = + min_bytes_per_line = ROUNDUP((bits_per_pixel * width), image->bitmap_pad); else min_bytes_per_line = @@ -373,7 +372,7 @@ XImage *XCreateImage (dpy, visual, depth, format, offset, data, width, height, if (image_bytes_per_line == 0) { image->bytes_per_line = min_bytes_per_line; } else if (image_bytes_per_line < min_bytes_per_line) { - return 0; + return NULL; } else { image->bytes_per_line = image_bytes_per_line; } @@ -385,8 +384,7 @@ XImage *XCreateImage (dpy, visual, depth, format, offset, data, width, height, return image; } -Status XInitImage (image) - XImage *image; +Status XInitImage (XImage *image) { int min_bytes_per_line; @@ -407,7 +405,7 @@ Status XInitImage (image) * compute per line accelerator. */ if (image->format == ZPixmap) - min_bytes_per_line = + min_bytes_per_line = ROUNDUP((image->bits_per_pixel * image->width), image->bitmap_pad); else @@ -427,15 +425,13 @@ Status XInitImage (image) /* * _DestroyImage - * - * Deallocates the memory associated with the ximage data structure. + * + * Deallocates the memory associated with the ximage data structure. * this version handles the case of the image data being malloc'd * entirely by the library. */ -static int _XDestroyImage (ximage) - XImage *ximage; - +static int _XDestroyImage (XImage *ximage) { if (ximage->data != NULL) Xfree((char *)ximage->data); if (ximage->obdata != NULL) Xfree((char *)ximage->obdata); @@ -446,8 +442,8 @@ static int _XDestroyImage (ximage) /* * GetPixel - * - * Returns the specified pixel. The X and Y coordinates are relative to + * + * Returns the specified pixel. The X and Y coordinates are relative to * the origin (upper left [0,0]) of the image. The pixel value is returned * in normalized format, i.e. the LSB of the long is the LSB of the pixel. * The algorithm used is: @@ -470,10 +466,10 @@ static unsigned long const low_bits_table[] = { 0xffffffff }; -static unsigned long _XGetPixel (ximage, x, y) - register XImage *ximage; - int x; - int y; +static unsigned long _XGetPixel ( + register XImage *ximage, + int x, + int y) { unsigned long pixel, px; @@ -482,7 +478,7 @@ static unsigned long _XGetPixel (ximage, x, y) register int i, j; int bits, nbytes; long plane; - + if ((ximage->bits_per_pixel | ximage->depth) == 1) { src = &ximage->data[XYINDEX(x, y, ximage)]; dst = (char *)&pixel; @@ -511,7 +507,7 @@ static unsigned long _XGetPixel (ximage, x, y) dst = (char *)&px; px = 0; for (i = (ximage->bits_per_pixel + 7) >> 3; --i >= 0; ) - *dst++ = *src++; + *dst++ = *src++; ZNORMALIZE(&px, ximage); pixel = 0; for (i=sizeof(unsigned long); --i >= 0; ) @@ -533,10 +529,10 @@ static unsigned long _XGetPixel (ximage, x, y) static CARD32 const byteorderpixel = MSBFirst << 24; -static unsigned long _XGetPixel32 (ximage, x, y) - register XImage *ximage; - int x; - int y; +static unsigned long _XGetPixel32 ( + register XImage *ximage, + int x, + int y) { register unsigned char *addr; unsigned long pixel; @@ -566,10 +562,10 @@ static unsigned long _XGetPixel32 (ximage, x, y) } } -static unsigned long _XGetPixel16 (ximage, x, y) - register XImage *ximage; - int x; - int y; +static unsigned long _XGetPixel16 ( + register XImage *ximage, + int x, + int y) { register unsigned char *addr; unsigned long pixel; @@ -590,10 +586,10 @@ static unsigned long _XGetPixel16 (ximage, x, y) } } -static unsigned long _XGetPixel8 (ximage, x, y) - register XImage *ximage; - int x; - int y; +static unsigned long _XGetPixel8 ( + register XImage *ximage, + int x, + int y) { unsigned char pixel; @@ -609,10 +605,10 @@ static unsigned long _XGetPixel8 (ximage, x, y) } } -static unsigned long _XGetPixel1 (ximage, x, y) - register XImage *ximage; - int x; - int y; +static unsigned long _XGetPixel1 ( + register XImage *ximage, + int x, + int y) { unsigned char bit; int xoff, yoff; @@ -632,11 +628,11 @@ static unsigned long _XGetPixel1 (ximage, x, y) return XGetPixel(ximage, x, y); } } - + /* * PutPixel - * - * Overwrites the specified pixel. The X and Y coordinates are relative to + * + * Overwrites the specified pixel. The X and Y coordinates are relative to * the origin (upper left [0,0]) of the image. The input pixel value must be * in normalized format, i.e. the LSB of the long is the LSB of the pixel. * The algorithm used is: @@ -649,11 +645,11 @@ static unsigned long _XGetPixel1 (ximage, x, y) * */ -static int _XPutPixel (ximage, x, y, pixel) - register XImage *ximage; - int x; - int y; - unsigned long pixel; +static int _XPutPixel ( + register XImage *ximage, + int x, + int y, + unsigned long pixel) { unsigned long px, npixel; @@ -709,8 +705,8 @@ static int _XPutPixel (ximage, x, y, pixel) nbytes = (ximage->bits_per_pixel + 7) >> 3; for (i = nbytes; --i >= 0; ) *dst++ = *src++; ZNORMALIZE(&px, ximage); - _putbits ((char *)&pixel, - (x * ximage->bits_per_pixel) & 7, + _putbits ((char *)&pixel, + (x * ximage->bits_per_pixel) & 7, ximage->bits_per_pixel, (char *)&px); ZNORMALIZE(&px, ximage); src = (char *)&px; @@ -722,11 +718,11 @@ static int _XPutPixel (ximage, x, y, pixel) return 1; } -static int _XPutPixel32 (ximage, x, y, pixel) - register XImage *ximage; - int x; - int y; - unsigned long pixel; +static int _XPutPixel32 ( + register XImage *ximage, + int x, + int y, + unsigned long pixel) { unsigned char *addr; @@ -754,11 +750,11 @@ static int _XPutPixel32 (ximage, x, y, pixel) } } -static int _XPutPixel16 (ximage, x, y, pixel) - register XImage *ximage; - int x; - int y; - unsigned long pixel; +static int _XPutPixel16 ( + register XImage *ximage, + int x, + int y, + unsigned long pixel) { unsigned char *addr; @@ -779,11 +775,11 @@ static int _XPutPixel16 (ximage, x, y, pixel) } } -static int _XPutPixel8 (ximage, x, y, pixel) - register XImage *ximage; - int x; - int y; - unsigned long pixel; +static int _XPutPixel8 ( + register XImage *ximage, + int x, + int y, + unsigned long pixel) { if ((ximage->format == ZPixmap) && (ximage->bits_per_pixel == 8)) { ximage->data[y * ximage->bytes_per_line + x] = pixel; @@ -794,11 +790,11 @@ static int _XPutPixel8 (ximage, x, y, pixel) } } -static int _XPutPixel1 (ximage, x, y, pixel) - register XImage *ximage; - int x; - int y; - unsigned long pixel; +static int _XPutPixel1 ( + register XImage *ximage, + int x, + int y, + unsigned long pixel) { unsigned char bit; int xoff, yoff; @@ -825,20 +821,20 @@ static int _XPutPixel1 (ximage, x, y, pixel) /* * SubImage - * + * * Creates a new image that is a subsection of an existing one. - * Allocates the memory necessary for the new XImage data structure. + * Allocates the memory necessary for the new XImage data structure. * Pointer to new image is returned. The algorithm used is repetitive * calls to get and put pixel. * */ -static XImage *_XSubImage (ximage, x, y, width, height) - XImage *ximage; - register int x; /* starting x coordinate in existing image */ - register int y; /* starting y coordinate in existing image */ - unsigned int width; /* width in pixels of new subimage */ - unsigned int height;/* height in pixels of new subimage */ +static XImage *_XSubImage ( + XImage *ximage, + register int x, /* starting x coordinate in existing image */ + register int y, /* starting y coordinate in existing image */ + unsigned int width, /* width in pixels of new subimage */ + unsigned int height)/* height in pixels of new subimage */ { register XImage *subimage; @@ -862,8 +858,8 @@ static XImage *_XSubImage (ximage, x, y, width, height) /* * compute per line accelerator. */ - if (subimage->format == ZPixmap) - subimage->bytes_per_line = + if (subimage->format == ZPixmap) + subimage->bytes_per_line = ROUNDUP(subimage->bits_per_pixel * width, subimage->bitmap_pad); else @@ -900,7 +896,7 @@ static XImage *_XSubImage (ximage, x, y, width, height) /* * SetImage - * + * * Overwrites a section of one image with all of the data from another. * If the two images are not of the same format (i.e. XYPixmap and ZPixmap), * the image data is converted to the destination format. The following @@ -915,7 +911,7 @@ static XImage *_XSubImage (ximage, x, y, width, height) * 3. If the width of the source image is too large to fit between * the specified x starting point and the end of the scanline, * then pixels are truncated on the right. - * + * * The images need not have the same bitmap_bit_order, byte_order, * bitmap_unit, bits_per_pixel, bitmap_pad, or xoffset. * @@ -959,15 +955,15 @@ int _XSetImage( /* * AddPixel - * + * * Adds a constant value to every pixel in a pixmap. * */ static int -_XAddPixel (ximage, value) - register XImage *ximage; - register long value; +_XAddPixel ( + register XImage *ximage, + register long value) { register int x; register int y; |