8 typedef struct _xf86CursorInfoRec {
13 void (*SetCursorColors) (ScrnInfoPtr pScrn, int bg, int fg);
14 void (*SetCursorPosition) (ScrnInfoPtr pScrn, int x, int y);
15 void (*LoadCursorImage) (ScrnInfoPtr pScrn, unsigned char *bits);
16 Bool (*LoadCursorImageCheck) (ScrnInfoPtr pScrn, unsigned char *bits);
17 void (*HideCursor) (ScrnInfoPtr pScrn);
18 void (*ShowCursor) (ScrnInfoPtr pScrn);
19 unsigned char *(*RealizeCursor) (struct _xf86CursorInfoRec *, CursorPtr);
20 Bool (*UseHWCursor) (ScreenPtr, CursorPtr);
23 Bool (*UseHWCursorARGB) (ScreenPtr, CursorPtr);
24 void (*LoadCursorARGB) (ScrnInfoPtr, CursorPtr);
25 Bool (*LoadCursorARGBCheck) (ScrnInfoPtr, CursorPtr);
28 } xf86CursorInfoRec, *xf86CursorInfoPtr;
31 xf86DriverHasLoadCursorImage(xf86CursorInfoPtr infoPtr)
33 return infoPtr->LoadCursorImageCheck || infoPtr->LoadCursorImage;
37 xf86DriverLoadCursorImage(xf86CursorInfoPtr infoPtr, unsigned char *bits)
39 if(infoPtr->LoadCursorImageCheck)
40 return infoPtr->LoadCursorImageCheck(infoPtr->pScrn, bits);
41 infoPtr->LoadCursorImage(infoPtr->pScrn, bits);
46 xf86DriverHasLoadCursorARGB(xf86CursorInfoPtr infoPtr)
48 return infoPtr->LoadCursorARGBCheck || infoPtr->LoadCursorARGB;
52 xf86DriverLoadCursorARGB(xf86CursorInfoPtr infoPtr, CursorPtr pCursor)
54 if(infoPtr->LoadCursorARGBCheck)
55 return infoPtr->LoadCursorARGBCheck(infoPtr->pScrn, pCursor);
56 infoPtr->LoadCursorARGB(infoPtr->pScrn, pCursor);
60 extern _X_EXPORT Bool xf86InitCursor(ScreenPtr pScreen,
61 xf86CursorInfoPtr infoPtr);
62 extern _X_EXPORT xf86CursorInfoPtr xf86CreateCursorInfoRec(void);
63 extern _X_EXPORT void xf86DestroyCursorInfoRec(xf86CursorInfoPtr);
64 extern _X_EXPORT void xf86ForceHWCursor(ScreenPtr pScreen, Bool on);
66 #define HARDWARE_CURSOR_INVERT_MASK 0x00000001
67 #define HARDWARE_CURSOR_AND_SOURCE_WITH_MASK 0x00000002
68 #define HARDWARE_CURSOR_SWAP_SOURCE_AND_MASK 0x00000004
69 #define HARDWARE_CURSOR_SOURCE_MASK_NOT_INTERLEAVED 0x00000008
70 #define HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_1 0x00000010
71 #define HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_8 0x00000020
72 #define HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_16 0x00000040
73 #define HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_32 0x00000080
74 #define HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_64 0x00000100
75 #define HARDWARE_CURSOR_TRUECOLOR_AT_8BPP 0x00000200
76 #define HARDWARE_CURSOR_BIT_ORDER_MSBFIRST 0x00000400
77 #define HARDWARE_CURSOR_NIBBLE_SWAPPED 0x00000800
78 #define HARDWARE_CURSOR_SHOW_TRANSPARENT 0x00001000
79 #define HARDWARE_CURSOR_UPDATE_UNHIDDEN 0x00002000
81 #define HARDWARE_CURSOR_ARGB 0x00004000
84 #endif /* _XF86CURSOR_H */