📄 pixman-xserver-compat.h
字号:
/* * 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 1typedef 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 3typedef 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 voidfbRasterizeEdges (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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -