b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * $XFree86: xc/programs/Xserver/fb/fboverlay.h,v 1.4tsi Exp $
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Copyright © 2000 SuSE, Inc.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Permission to use, copy, modify, distribute, and sell this software and its
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * documentation for any purpose is hereby granted without fee, provided that
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * the above copyright notice appear in all copies and that both that
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * copyright notice and this permission notice appear in supporting
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * documentation, and that the name of SuSE not be used in advertising or
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * publicity pertaining to distribution of the software without specific,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * written prior permission. SuSE makes no representations about the
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * suitability of this software for any purpose. It is provided "as is"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * without express or implied warranty.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Author: Keith Packard, SuSE, Inc.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef _FBOVERLAY_H_
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define _FBOVERLAY_H_
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int fbOverlayGeneration;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int fbOverlayScreenPrivateIndex; /* XXX should be static */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int fbOverlayGetScreenPrivateIndex(void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef FB_OVERLAY_MAX
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FB_OVERLAY_MAX 2
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef void (*fbOverlayPaintKeyProc) (DrawablePtr, RegionPtr, CARD32, int);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _fbOverlayLayer {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync union {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync struct {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer pbits;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int width;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int depth;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync } init;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync struct {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr pixmap;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionRec region;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync } run;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync } u;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD32 key; /* special pixel value */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} FbOverlayLayer;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _fbOverlayScrPriv {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int nlayers;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync fbOverlayPaintKeyProc PaintKey;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync fbCopyProc CopyWindow;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync FbOverlayLayer layer[FB_OVERLAY_MAX];
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} FbOverlayScrPrivRec, *FbOverlayScrPrivPtr;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fbOverlayGetScrPriv(s) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((fbOverlayGetScreenPrivateIndex() != -1) ? \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (s)->devPrivates[fbOverlayGetScreenPrivateIndex()].ptr : NULL)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncBool
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncfbOverlayCreateWindow(WindowPtr pWin);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncBool
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncfbOverlayCloseScreen (int iScreen, ScreenPtr pScreen);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncint
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncfbOverlayWindowLayer(WindowPtr pWin);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncBool
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncfbOverlayCreateScreenResources(ScreenPtr pScreen);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncfbOverlayPaintKey (DrawablePtr pDrawable,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr pRegion,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD32 pixel,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int layer);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncfbOverlayUpdateLayerRegion (ScreenPtr pScreen,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int layer,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr prgn);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncfbOverlayCopyWindow(WindowPtr pWin,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointRec ptOldOrg,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr prgnSrc);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncfbOverlayWindowExposures (WindowPtr pWin,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr prgn,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr other_exposed);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncfbOverlayPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncBool
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncfbOverlaySetupScreen(ScreenPtr pScreen,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer pbits1,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer pbits2,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int xsize,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int ysize,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int dpix,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int dpiy,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int width1,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int width2,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int bpp1,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int bpp2);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncBool
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncfbOverlayFinishScreenInit(ScreenPtr pScreen,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer pbits1,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer pbits2,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int xsize,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int ysize,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int dpix,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int dpiy,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int width1,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int width2,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int bpp1,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int bpp2,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int depth1,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int depth2);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* _FBOVERLAY_H_ */