105b261ecSmrg/* 205b261ecSmrg * 305b261ecSmrg * Copyright © 2000 SuSE, Inc. 405b261ecSmrg * 505b261ecSmrg * Permission to use, copy, modify, distribute, and sell this software and its 605b261ecSmrg * documentation for any purpose is hereby granted without fee, provided that 705b261ecSmrg * the above copyright notice appear in all copies and that both that 805b261ecSmrg * copyright notice and this permission notice appear in supporting 905b261ecSmrg * documentation, and that the name of SuSE not be used in advertising or 1005b261ecSmrg * publicity pertaining to distribution of the software without specific, 1105b261ecSmrg * written prior permission. SuSE makes no representations about the 1205b261ecSmrg * suitability of this software for any purpose. It is provided "as is" 1305b261ecSmrg * without express or implied warranty. 1405b261ecSmrg * 1505b261ecSmrg * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL 1605b261ecSmrg * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE 1705b261ecSmrg * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1805b261ecSmrg * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 1935c4bbdfSmrg * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 2005b261ecSmrg * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 2105b261ecSmrg * 2205b261ecSmrg * Author: Keith Packard, SuSE, Inc. 2305b261ecSmrg */ 2405b261ecSmrg 2505b261ecSmrg#ifndef _FBOVERLAY_H_ 2605b261ecSmrg#define _FBOVERLAY_H_ 2705b261ecSmrg 284642e01fSmrg#include "privates.h" 294642e01fSmrg 306747b715Smrgextern _X_EXPORT DevPrivateKey fbOverlayGetScreenPrivateKey(void); 3105b261ecSmrg 3205b261ecSmrg#ifndef FB_OVERLAY_MAX 3305b261ecSmrg#define FB_OVERLAY_MAX 2 3405b261ecSmrg#endif 3505b261ecSmrg 3635c4bbdfSmrgtypedef void (*fbOverlayPaintKeyProc) (DrawablePtr, RegionPtr, CARD32, int); 3705b261ecSmrg 3805b261ecSmrgtypedef struct _fbOverlayLayer { 3905b261ecSmrg union { 4035c4bbdfSmrg struct { 4135c4bbdfSmrg void *pbits; 4235c4bbdfSmrg int width; 4335c4bbdfSmrg int depth; 4435c4bbdfSmrg } init; 4535c4bbdfSmrg struct { 4635c4bbdfSmrg PixmapPtr pixmap; 4735c4bbdfSmrg RegionRec region; 4835c4bbdfSmrg } run; 4905b261ecSmrg } u; 5035c4bbdfSmrg CARD32 key; /* special pixel value */ 5105b261ecSmrg} FbOverlayLayer; 5205b261ecSmrg 5305b261ecSmrgtypedef struct _fbOverlayScrPriv { 5435c4bbdfSmrg int nlayers; 5535c4bbdfSmrg fbOverlayPaintKeyProc PaintKey; 5635c4bbdfSmrg miCopyProc CopyWindow; 5735c4bbdfSmrg FbOverlayLayer layer[FB_OVERLAY_MAX]; 5805b261ecSmrg} FbOverlayScrPrivRec, *FbOverlayScrPrivPtr; 5905b261ecSmrg 6005b261ecSmrg#define fbOverlayGetScrPriv(s) \ 614642e01fSmrg dixLookupPrivate(&(s)->devPrivates, fbOverlayGetScreenPrivateKey()) 626747b715Smrgextern _X_EXPORT Bool 6335c4bbdfSmrg fbOverlayCreateWindow(WindowPtr pWin); 6405b261ecSmrg 656747b715Smrgextern _X_EXPORT Bool 6635c4bbdfSmrg fbOverlayCloseScreen(ScreenPtr pScreen); 6705b261ecSmrg 686747b715Smrgextern _X_EXPORT int 6935c4bbdfSmrg fbOverlayWindowLayer(WindowPtr pWin); 7005b261ecSmrg 716747b715Smrgextern _X_EXPORT Bool 7235c4bbdfSmrg fbOverlayCreateScreenResources(ScreenPtr pScreen); 7305b261ecSmrg 746747b715Smrgextern _X_EXPORT void 7535c4bbdfSmrg 7635c4bbdfSmrgfbOverlayPaintKey(DrawablePtr pDrawable, 7735c4bbdfSmrg RegionPtr pRegion, CARD32 pixel, int layer); 786747b715Smrgextern _X_EXPORT void 7935c4bbdfSmrg fbOverlayUpdateLayerRegion(ScreenPtr pScreen, int layer, RegionPtr prgn); 8005b261ecSmrg 816747b715Smrgextern _X_EXPORT void 8235c4bbdfSmrg fbOverlayCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc); 8335c4bbdfSmrg 846747b715Smrgextern _X_EXPORT void 8535c4bbdfSmrgfbOverlayWindowExposures(WindowPtr pWin, RegionPtr prgn); 8605b261ecSmrg 876747b715Smrgextern _X_EXPORT Bool 8835c4bbdfSmrg 8935c4bbdfSmrgfbOverlaySetupScreen(ScreenPtr pScreen, 9035c4bbdfSmrg void *pbits1, 9135c4bbdfSmrg void *pbits2, 9235c4bbdfSmrg int xsize, 9335c4bbdfSmrg int ysize, 9435c4bbdfSmrg int dpix, 9535c4bbdfSmrg int dpiy, int width1, int width2, int bpp1, int bpp2); 9605b261ecSmrg 976747b715Smrgextern _X_EXPORT Bool 9835c4bbdfSmrg 9935c4bbdfSmrgfbOverlayFinishScreenInit(ScreenPtr pScreen, 10035c4bbdfSmrg void *pbits1, 10135c4bbdfSmrg void *pbits2, 10235c4bbdfSmrg int xsize, 10335c4bbdfSmrg int ysize, 10435c4bbdfSmrg int dpix, 10535c4bbdfSmrg int dpiy, 10635c4bbdfSmrg int width1, 10735c4bbdfSmrg int width2, 10835c4bbdfSmrg int bpp1, int bpp2, int depth1, int depth2); 10935c4bbdfSmrg 11035c4bbdfSmrg#endif /* _FBOVERLAY_H_ */ 111