8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#ifndef _SHADOWFB_H
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define _SHADOWFB_H
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#include "xf86str.h"
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync/*
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * User defined callback function. Passed a pointer to the ScrnInfo struct,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * the number of dirty rectangles, and a pointer to the first dirty rectangle
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * in the array.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (*RefreshAreaFuncPtr)(ScrnInfoPtr, int, BoxPtr);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync/*
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * ShadowFBInit initializes the shadowfb subsystem. refreshArea is a pointer
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * to a user supplied callback function. This function will be called after
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * any operation that modifies the framebuffer. The newly dirtied rectangles
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * are passed to the callback.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync *
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * Returns FALSE in the event of an error.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern _X_EXPORT Bool
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncShadowFBInit (
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr pScreen,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync RefreshAreaFuncPtr refreshArea
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync/*
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * ShadowFBInit2 is a more featureful refinement of the original shadowfb.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * ShadowFBInit2 allows you to specify two callbacks, one to be called
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * immediately before an operation that modifies the framebuffer, and another
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * to be called immediately after.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync *
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * Returns FALSE in the event of an error
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern _X_EXPORT Bool
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncShadowFBInit2 (
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr pScreen,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync RefreshAreaFuncPtr preRefreshArea,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync RefreshAreaFuncPtr postRefreshArea
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#endif /* _SHADOWFB_H */