Imported Upstream version 1.15.1
[deb_xorg-server.git] / fb / fboverlay.h
CommitLineData
a09e091a
JB
1/*
2 *
3 * Copyright © 2000 SuSE, Inc.
4 *
5 * Permission to use, copy, modify, distribute, and sell this software and its
6 * documentation for any purpose is hereby granted without fee, provided that
7 * the above copyright notice appear in all copies and that both that
8 * copyright notice and this permission notice appear in supporting
9 * documentation, and that the name of SuSE not be used in advertising or
10 * publicity pertaining to distribution of the software without specific,
11 * written prior permission. SuSE makes no representations about the
12 * suitability of this software for any purpose. It is provided "as is"
13 * without express or implied warranty.
14 *
15 * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
17 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
18 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
19 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
20 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21 *
22 * Author: Keith Packard, SuSE, Inc.
23 */
24
25#ifndef _FBOVERLAY_H_
26#define _FBOVERLAY_H_
27
28#include "privates.h"
29
30extern _X_EXPORT DevPrivateKey fbOverlayGetScreenPrivateKey(void);
31
32#ifndef FB_OVERLAY_MAX
33#define FB_OVERLAY_MAX 2
34#endif
35
36typedef void (*fbOverlayPaintKeyProc) (DrawablePtr, RegionPtr, CARD32, int);
37
38typedef struct _fbOverlayLayer {
39 union {
40 struct {
41 pointer pbits;
42 int width;
43 int depth;
44 } init;
45 struct {
46 PixmapPtr pixmap;
47 RegionRec region;
48 } run;
49 } u;
50 CARD32 key; /* special pixel value */
51} FbOverlayLayer;
52
53typedef struct _fbOverlayScrPriv {
54 int nlayers;
55 fbOverlayPaintKeyProc PaintKey;
56 miCopyProc CopyWindow;
57 FbOverlayLayer layer[FB_OVERLAY_MAX];
58} FbOverlayScrPrivRec, *FbOverlayScrPrivPtr;
59
60#define fbOverlayGetScrPriv(s) \
61 dixLookupPrivate(&(s)->devPrivates, fbOverlayGetScreenPrivateKey())
62extern _X_EXPORT Bool
63 fbOverlayCreateWindow(WindowPtr pWin);
64
65extern _X_EXPORT Bool
66 fbOverlayCloseScreen(ScreenPtr pScreen);
67
68extern _X_EXPORT int
69 fbOverlayWindowLayer(WindowPtr pWin);
70
71extern _X_EXPORT Bool
72 fbOverlayCreateScreenResources(ScreenPtr pScreen);
73
74extern _X_EXPORT void
75
76fbOverlayPaintKey(DrawablePtr pDrawable,
77 RegionPtr pRegion, CARD32 pixel, int layer);
78extern _X_EXPORT void
79 fbOverlayUpdateLayerRegion(ScreenPtr pScreen, int layer, RegionPtr prgn);
80
81extern _X_EXPORT void
82 fbOverlayCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc);
83
84extern _X_EXPORT void
85
86fbOverlayWindowExposures(WindowPtr pWin,
87 RegionPtr prgn, RegionPtr other_exposed);
88
89extern _X_EXPORT Bool
90
91fbOverlaySetupScreen(ScreenPtr pScreen,
92 pointer pbits1,
93 pointer pbits2,
94 int xsize,
95 int ysize,
96 int dpix,
97 int dpiy, int width1, int width2, int bpp1, int bpp2);
98
99extern _X_EXPORT Bool
100
101fbOverlayFinishScreenInit(ScreenPtr pScreen,
102 pointer pbits1,
103 pointer pbits2,
104 int xsize,
105 int ysize,
106 int dpix,
107 int dpiy,
108 int width1,
109 int width2,
110 int bpp1, int bpp2, int depth1, int depth2);
111
112#endif /* _FBOVERLAY_H_ */