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