diff options
Diffstat (limited to 'pixman/src/pixman-xserver-compat.h')
-rw-r--r-- | pixman/src/pixman-xserver-compat.h | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/pixman/src/pixman-xserver-compat.h b/pixman/src/pixman-xserver-compat.h new file mode 100644 index 0000000..46e2825 --- /dev/null +++ b/pixman/src/pixman-xserver-compat.h @@ -0,0 +1,126 @@ +/* + * Copyright © 2005 Red Hat, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software + * and its documentation for any purpose is hereby granted without + * fee, provided that the above copyright notice appear in all copies + * and that both that copyright notice and this permission notice + * appear in supporting documentation, and that the name of Red Hat, + * Inc. not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior + * permission. Red Hat, Inc. makes no representations about the + * suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + * + * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER + * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Author: Carl Worth, Red Hat, Inc. + */ + +#ifndef _PIXMAN_XSERVER_COMPAT_H_ +#define _PIXMAN_XSERVER_COMPAT_H_ + +/* This is a compatibility header file, designed to make it easier to + * synchronize files between libpixman and the xserver repository. + * + * Of course, long-term we would instead like to have the X server + * depend on libpixman to eliminate the code duplication. But for now, + * we at least make it easy to share files. + * + * The libpixman code base regards the xserver repository as canonical + * for any shared files, so changes should be pushed up there. Then, + * to merge changes back down into libpixman, the process should be to + * simply copy the file and to replace the block of include directives + * with: + * + * #include "pixman-xserver-compat.h" + */ + +/* First, include the primary internal header file for libpixman. */ + +#include "icint.h" + +/* Then, define any names that the server code will be expecting in + * terms of libpixman names. */ +/* +typedef uint8_t CARD8; +typedef uint16_t CARD16; +typedef int16_t INT16; + +typedef int Bool; +#define FALSE 0 +#define TRUE 1 + +typedef pixman_bits_t FbBits; +typedef pixman_image_t* PicturePtr; +typedef pixman_box16_t BoxRec; +typedef pixman_box16_t* BoxPtr; + +typedef pixman_point_fixed_t xPointFixed; +typedef pixman_line_fixed_t xLineFixed; +typedef pixman_trapezoid_t xTrapezoid; +typedef pixman_triangle_t xTriangle; +*/ +#define RENDER 1 +/* +#define FB_SHIFT IC_SHIFT +#define FB_MASK IC_MASK +#define FB_ALLONES IC_ALLONES +*/ +//#define FbMaskBits IcMaskBits + +/* XXX: We changed some function and field names which makes for some + * ugly hacks... */ +#define pDrawable pixels +#define fbGetDrawable(pDrawable, buf, outstride, outbpp, xoff, yoff) { \ + (buf) = (pDrawable)->data; \ + (outstride) = ((int) pDrawable->stride) / sizeof (pixman_bits_t); \ + (outbpp) = (pDrawable)->bpp; \ + (xoff) = 0; \ + (yoff) = 0; \ +} + +/* Extended repeat attributes included in 0.10 */ +#define RepeatNone 0 +#define RepeatNormal 1 +#define RepeatPad 2 +#define RepeatReflect 3 + +typedef pixman_vector_t PictVector; +typedef pixman_vector_t* PictVectorPtr; + +#define miIndexedPtr FbIndexedPtr +#define miIndexToEnt24 FbIndexToEnt24 +#define miIndexToEntY24 FbIndexToEntY24 + +#define MAX_FIXED_48_16 ((xFixed_48_16) 0x7fffffff) +#define MIN_FIXED_48_16 (-((xFixed_48_16) 1 << 31)) + +/* Then, include any header files that have been copied directly + * from xserver. */ + +#include "renderedge.h" + +/* And finally, this one prototype must come after the include of + * renderedge.h, so it can't live alongside the other prototypes in + * the horrible mess that is icint.h. + */ + +pixman_private void +fbRasterizeEdges (pixman_bits_t *buf, + int bpp, + int width, + int stride, + RenderEdge *l, + RenderEdge *r, + pixman_fixed16_16_t t, + pixman_fixed16_16_t b); + + +#endif |