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