1*4882a593Smuzhiyun 2*4882a593Smuzhiyun #ifndef _SHADOWFB_H 3*4882a593Smuzhiyun #define _SHADOWFB_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include "xf86str.h" 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun /* 8*4882a593Smuzhiyun * User defined callback function. Passed a pointer to the ScrnInfo struct, 9*4882a593Smuzhiyun * the number of dirty rectangles, and a pointer to the first dirty rectangle 10*4882a593Smuzhiyun * in the array. 11*4882a593Smuzhiyun */ 12*4882a593Smuzhiyun typedef void (*RefreshAreaFuncPtr) (ScrnInfoPtr, int, BoxPtr); 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun /* 15*4882a593Smuzhiyun * ShadowFBInit initializes the shadowfb subsystem. refreshArea is a pointer 16*4882a593Smuzhiyun * to a user supplied callback function. This function will be called after 17*4882a593Smuzhiyun * any operation that modifies the framebuffer. The newly dirtied rectangles 18*4882a593Smuzhiyun * are passed to the callback. 19*4882a593Smuzhiyun * 20*4882a593Smuzhiyun * Returns FALSE in the event of an error. 21*4882a593Smuzhiyun */ 22*4882a593Smuzhiyun extern _X_EXPORT Bool 23*4882a593Smuzhiyun ShadowFBInit(ScreenPtr pScreen, RefreshAreaFuncPtr refreshArea); 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun /* 26*4882a593Smuzhiyun * ShadowFBInit2 is a more featureful refinement of the original shadowfb. 27*4882a593Smuzhiyun * ShadowFBInit2 allows you to specify two callbacks, one to be called 28*4882a593Smuzhiyun * immediately before an operation that modifies the framebuffer, and another 29*4882a593Smuzhiyun * to be called immediately after. 30*4882a593Smuzhiyun * 31*4882a593Smuzhiyun * Returns FALSE in the event of an error 32*4882a593Smuzhiyun */ 33*4882a593Smuzhiyun extern _X_EXPORT Bool 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun ShadowFBInit2(ScreenPtr pScreen, 36*4882a593Smuzhiyun RefreshAreaFuncPtr preRefreshArea, 37*4882a593Smuzhiyun RefreshAreaFuncPtr postRefreshArea); 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun #endif /* _SHADOWFB_H */ 40