| 1 | |
| 2 | #ifndef _XF86CURSOR_H |
| 3 | #define _XF86CURSOR_H |
| 4 | |
| 5 | #include "xf86str.h" |
| 6 | #include "mipointer.h" |
| 7 | |
| 8 | typedef struct _xf86CursorInfoRec { |
| 9 | ScrnInfoPtr pScrn; |
| 10 | int Flags; |
| 11 | int MaxWidth; |
| 12 | int MaxHeight; |
| 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 | void (*HideCursor) (ScrnInfoPtr pScrn); |
| 17 | void (*ShowCursor) (ScrnInfoPtr pScrn); |
| 18 | unsigned char *(*RealizeCursor) (struct _xf86CursorInfoRec *, CursorPtr); |
| 19 | Bool (*UseHWCursor) (ScreenPtr, CursorPtr); |
| 20 | |
| 21 | #ifdef ARGB_CURSOR |
| 22 | Bool (*UseHWCursorARGB) (ScreenPtr, CursorPtr); |
| 23 | void (*LoadCursorARGB) (ScrnInfoPtr, CursorPtr); |
| 24 | #endif |
| 25 | |
| 26 | } xf86CursorInfoRec, *xf86CursorInfoPtr; |
| 27 | |
| 28 | extern _X_EXPORT Bool xf86InitCursor(ScreenPtr pScreen, |
| 29 | xf86CursorInfoPtr infoPtr); |
| 30 | extern _X_EXPORT xf86CursorInfoPtr xf86CreateCursorInfoRec(void); |
| 31 | extern _X_EXPORT void xf86DestroyCursorInfoRec(xf86CursorInfoPtr); |
| 32 | extern _X_EXPORT void xf86ForceHWCursor(ScreenPtr pScreen, Bool on); |
| 33 | |
| 34 | #define HARDWARE_CURSOR_INVERT_MASK 0x00000001 |
| 35 | #define HARDWARE_CURSOR_AND_SOURCE_WITH_MASK 0x00000002 |
| 36 | #define HARDWARE_CURSOR_SWAP_SOURCE_AND_MASK 0x00000004 |
| 37 | #define HARDWARE_CURSOR_SOURCE_MASK_NOT_INTERLEAVED 0x00000008 |
| 38 | #define HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_1 0x00000010 |
| 39 | #define HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_8 0x00000020 |
| 40 | #define HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_16 0x00000040 |
| 41 | #define HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_32 0x00000080 |
| 42 | #define HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_64 0x00000100 |
| 43 | #define HARDWARE_CURSOR_TRUECOLOR_AT_8BPP 0x00000200 |
| 44 | #define HARDWARE_CURSOR_BIT_ORDER_MSBFIRST 0x00000400 |
| 45 | #define HARDWARE_CURSOR_NIBBLE_SWAPPED 0x00000800 |
| 46 | #define HARDWARE_CURSOR_SHOW_TRANSPARENT 0x00001000 |
| 47 | #define HARDWARE_CURSOR_UPDATE_UNHIDDEN 0x00002000 |
| 48 | #ifdef ARGB_CURSOR |
| 49 | #define HARDWARE_CURSOR_ARGB 0x00004000 |
| 50 | #endif |
| 51 | |
| 52 | #endif /* _XF86CURSOR_H */ |