105b261ecSmrg 205b261ecSmrg#ifndef _XF86CURSOR_H 305b261ecSmrg#define _XF86CURSOR_H 405b261ecSmrg 505b261ecSmrg#include "xf86str.h" 605b261ecSmrg#include "mipointer.h" 705b261ecSmrg 805b261ecSmrgtypedef struct _xf86CursorInfoRec { 905b261ecSmrg ScrnInfoPtr pScrn; 1005b261ecSmrg int Flags; 1105b261ecSmrg int MaxWidth; 1205b261ecSmrg int MaxHeight; 1335c4bbdfSmrg void (*SetCursorColors) (ScrnInfoPtr pScrn, int bg, int fg); 1435c4bbdfSmrg void (*SetCursorPosition) (ScrnInfoPtr pScrn, int x, int y); 1535c4bbdfSmrg void (*LoadCursorImage) (ScrnInfoPtr pScrn, unsigned char *bits); 1635c4bbdfSmrg Bool (*LoadCursorImageCheck) (ScrnInfoPtr pScrn, unsigned char *bits); 1735c4bbdfSmrg void (*HideCursor) (ScrnInfoPtr pScrn); 1835c4bbdfSmrg void (*ShowCursor) (ScrnInfoPtr pScrn); 191b5d61b8Smrg Bool (*ShowCursorCheck) (ScrnInfoPtr pScrn); 2035c4bbdfSmrg unsigned char *(*RealizeCursor) (struct _xf86CursorInfoRec *, CursorPtr); 2135c4bbdfSmrg Bool (*UseHWCursor) (ScreenPtr, CursorPtr); 2235c4bbdfSmrg 2305b261ecSmrg Bool (*UseHWCursorARGB) (ScreenPtr, CursorPtr); 2405b261ecSmrg void (*LoadCursorARGB) (ScrnInfoPtr, CursorPtr); 2535c4bbdfSmrg Bool (*LoadCursorARGBCheck) (ScrnInfoPtr, CursorPtr); 2605b261ecSmrg 2705b261ecSmrg} xf86CursorInfoRec, *xf86CursorInfoPtr; 2805b261ecSmrg 2935c4bbdfSmrgstatic inline Bool 3035c4bbdfSmrgxf86DriverHasLoadCursorImage(xf86CursorInfoPtr infoPtr) 3135c4bbdfSmrg{ 3235c4bbdfSmrg return infoPtr->LoadCursorImageCheck || infoPtr->LoadCursorImage; 3335c4bbdfSmrg} 3435c4bbdfSmrg 3535c4bbdfSmrgstatic inline Bool 3635c4bbdfSmrgxf86DriverLoadCursorImage(xf86CursorInfoPtr infoPtr, unsigned char *bits) 3735c4bbdfSmrg{ 3835c4bbdfSmrg if(infoPtr->LoadCursorImageCheck) 3935c4bbdfSmrg return infoPtr->LoadCursorImageCheck(infoPtr->pScrn, bits); 4035c4bbdfSmrg infoPtr->LoadCursorImage(infoPtr->pScrn, bits); 4135c4bbdfSmrg return TRUE; 4235c4bbdfSmrg} 4335c4bbdfSmrg 441b5d61b8Smrgstatic inline Bool 451b5d61b8Smrgxf86DriverHasShowCursor(xf86CursorInfoPtr infoPtr) 461b5d61b8Smrg{ 471b5d61b8Smrg return infoPtr->ShowCursorCheck || infoPtr->ShowCursor; 481b5d61b8Smrg} 491b5d61b8Smrg 501b5d61b8Smrgstatic inline Bool 511b5d61b8Smrgxf86DriverShowCursor(xf86CursorInfoPtr infoPtr) 521b5d61b8Smrg{ 531b5d61b8Smrg if(infoPtr->ShowCursorCheck) 541b5d61b8Smrg return infoPtr->ShowCursorCheck(infoPtr->pScrn); 551b5d61b8Smrg infoPtr->ShowCursor(infoPtr->pScrn); 561b5d61b8Smrg return TRUE; 571b5d61b8Smrg} 581b5d61b8Smrg 5935c4bbdfSmrgstatic inline Bool 6035c4bbdfSmrgxf86DriverHasLoadCursorARGB(xf86CursorInfoPtr infoPtr) 6135c4bbdfSmrg{ 6235c4bbdfSmrg return infoPtr->LoadCursorARGBCheck || infoPtr->LoadCursorARGB; 6335c4bbdfSmrg} 6435c4bbdfSmrg 6535c4bbdfSmrgstatic inline Bool 6635c4bbdfSmrgxf86DriverLoadCursorARGB(xf86CursorInfoPtr infoPtr, CursorPtr pCursor) 6735c4bbdfSmrg{ 6835c4bbdfSmrg if(infoPtr->LoadCursorARGBCheck) 6935c4bbdfSmrg return infoPtr->LoadCursorARGBCheck(infoPtr->pScrn, pCursor); 7035c4bbdfSmrg infoPtr->LoadCursorARGB(infoPtr->pScrn, pCursor); 7135c4bbdfSmrg return TRUE; 7235c4bbdfSmrg} 7335c4bbdfSmrg 7435c4bbdfSmrgextern _X_EXPORT Bool xf86InitCursor(ScreenPtr pScreen, 7535c4bbdfSmrg xf86CursorInfoPtr infoPtr); 766747b715Smrgextern _X_EXPORT xf86CursorInfoPtr xf86CreateCursorInfoRec(void); 776747b715Smrgextern _X_EXPORT void xf86DestroyCursorInfoRec(xf86CursorInfoPtr); 7835c4bbdfSmrgextern _X_EXPORT void xf86CursorResetCursor(ScreenPtr pScreen); 7935c4bbdfSmrgextern _X_EXPORT void xf86ForceHWCursor(ScreenPtr pScreen, Bool on); 801b5d61b8Smrgextern _X_EXPORT CursorPtr xf86CurrentCursor(ScreenPtr pScreen); 8105b261ecSmrg 8205b261ecSmrg#define HARDWARE_CURSOR_INVERT_MASK 0x00000001 8305b261ecSmrg#define HARDWARE_CURSOR_AND_SOURCE_WITH_MASK 0x00000002 8405b261ecSmrg#define HARDWARE_CURSOR_SWAP_SOURCE_AND_MASK 0x00000004 8505b261ecSmrg#define HARDWARE_CURSOR_SOURCE_MASK_NOT_INTERLEAVED 0x00000008 8605b261ecSmrg#define HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_1 0x00000010 8705b261ecSmrg#define HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_8 0x00000020 8805b261ecSmrg#define HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_16 0x00000040 8905b261ecSmrg#define HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_32 0x00000080 9005b261ecSmrg#define HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_64 0x00000100 9105b261ecSmrg#define HARDWARE_CURSOR_TRUECOLOR_AT_8BPP 0x00000200 9205b261ecSmrg#define HARDWARE_CURSOR_BIT_ORDER_MSBFIRST 0x00000400 9305b261ecSmrg#define HARDWARE_CURSOR_NIBBLE_SWAPPED 0x00000800 9405b261ecSmrg#define HARDWARE_CURSOR_SHOW_TRANSPARENT 0x00001000 9505b261ecSmrg#define HARDWARE_CURSOR_UPDATE_UNHIDDEN 0x00002000 9605b261ecSmrg#define HARDWARE_CURSOR_ARGB 0x00004000 9705b261ecSmrg 9835c4bbdfSmrg#endif /* _XF86CURSOR_H */ 99