03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync *
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * Copyright © 2000 SuSE, Inc.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync *
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * Permission to use, copy, modify, distribute, and sell this software and its
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * documentation for any purpose is hereby granted without fee, provided that
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * the above copyright notice appear in all copies and that both that
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * copyright notice and this permission notice appear in supporting
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * documentation, and that the name of SuSE not be used in advertising or
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * publicity pertaining to distribution of the software without specific,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * written prior permission. SuSE makes no representations about the
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * suitability of this software for any purpose. It is provided "as is"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * without express or implied warranty.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync *
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync *
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * Author: Keith Packard, SuSE, Inc.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#ifndef _FBOVERLAY_H_
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define _FBOVERLAY_H_
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "privates.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT DevPrivateKey fbOverlayGetScreenPrivateKey(void);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#ifndef FB_OVERLAY_MAX
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_OVERLAY_MAX 2
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef void (*fbOverlayPaintKeyProc) (DrawablePtr, RegionPtr, CARD32, int);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef struct _fbOverlayLayer {
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync union {
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync struct {
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync pointer pbits;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int depth;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } init;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync struct {
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync PixmapPtr pixmap;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync RegionRec region;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } run;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } u;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync CARD32 key; /* special pixel value */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync} FbOverlayLayer;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef struct _fbOverlayScrPriv {
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int nlayers;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbOverlayPaintKeyProc PaintKey;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync miCopyProc CopyWindow;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbOverlayLayer layer[FB_OVERLAY_MAX];
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync} FbOverlayScrPrivRec, *FbOverlayScrPrivPtr;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbOverlayGetScrPriv(s) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync dixLookupPrivate(&(s)->devPrivates, fbOverlayGetScreenPrivateKey())
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbOverlayCreateWindow(WindowPtr pWin);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbOverlayCloseScreen(ScreenPtr pScreen);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT int
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbOverlayWindowLayer(WindowPtr pWin);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbOverlayCreateScreenResources(ScreenPtr pScreen);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbOverlayPaintKey(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync RegionPtr pRegion, CARD32 pixel, int layer);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbOverlayUpdateLayerRegion(ScreenPtr pScreen, int layer, RegionPtr prgn);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbOverlayCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbOverlayWindowExposures(WindowPtr pWin,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync RegionPtr prgn, RegionPtr other_exposed);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbOverlaySetupScreen(ScreenPtr pScreen,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync pointer pbits1,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync pointer pbits2,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xsize,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int ysize,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dpix,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dpiy, int width1, int width2, int bpp1, int bpp2);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbOverlayFinishScreenInit(ScreenPtr pScreen,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync pointer pbits1,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync pointer pbits2,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xsize,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int ysize,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dpix,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dpiy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width1,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width2,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int bpp1, int bpp2, int depth1, int depth2);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif /* _FBOVERLAY_H_ */