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