summaryrefslogtreecommitdiff
path: root/pixman/src/pixman-xserver-compat.h
diff options
context:
space:
mode:
Diffstat (limited to 'pixman/src/pixman-xserver-compat.h')
-rw-r--r--pixman/src/pixman-xserver-compat.h126
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