summaryrefslogtreecommitdiff
path: root/drv/imped.h
blob: 36ebaeefd24fa7e612a20dd3ee725cabc8381c5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#ifndef IMPED_H
#define IMPED_H

#include "randrstr.h"
#include "picturestr.h"

extern _X_EXPORT Bool impedSetupScreen(ScreenPtr pScreen);

extern _X_EXPORT Bool impedFinishScreenInit(ScreenPtr pScreen,
                                            pointer pbits,
                                            int         xsize,
                                            int         ysize,
                                            int         dpix,
                                            int         dpiy,
                                            int         width,
                                            int         bpp);

#define impedGetScreenPixmap(s)	((PixmapPtr) (s)->devPrivate)

extern _X_EXPORT PixmapPtr
 _impedGetWindowPixmap(WindowPtr pWindow);

extern _X_EXPORT void
 _impedSetWindowPixmap(WindowPtr pWindow, PixmapPtr pPixmap);

extern _X_EXPORT Bool
impedCreateGC(GCPtr pGC);

extern _X_EXPORT void
impedAttachUnboundScreen(ScreenPtr pScreen, ScreenPtr new);
extern _X_EXPORT void
impedDetachUnboundScreen(ScreenPtr pScreen, ScreenPtr slave);

extern _X_EXPORT void
impedAttachScreen(ScreenPtr pScreen, ScreenPtr slave);

extern _X_EXPORT void
impedAttachOutputSlave(ScreenPtr pScreen, ScreenPtr slave, int index);

extern _X_EXPORT void
impedAttachOffloadSlave(ScreenPtr pScreen, ScreenPtr slave, int index);

extern _X_EXPORT void
impedDetachOutputSlave(ScreenPtr pScreen, ScreenPtr slave);

extern _X_EXPORT void
impedDetachOffloadSlave(ScreenPtr pScreen, ScreenPtr slave);

extern _X_EXPORT void
impedMigrateOutputSlaves(ScreenPtr pOldMaster, ScreenPtr pNewMaster);

extern _X_EXPORT void
impedCopyNtoN (DrawablePtr	pSrcDrawable,
	       DrawablePtr	pDstDrawable,
	       GCPtr	pGC,
	       BoxPtr	pbox,
	       int		nbox,
	       int		dx,
	       int		dy,
	       Bool	reverse,
	       Bool	upsidedown,
	       Pixel	bitplane,
	       void	*closure);

static inline void impedGetDrawableDeltas(DrawablePtr pDrawable, PixmapPtr pPixmap,
                                          int *x_off, int *y_off)
{
    *x_off = pDrawable->x;
    *y_off = pDrawable->y;

#ifdef COMPOSITE
    if (pDrawable->type == DRAWABLE_WINDOW) {
        *x_off -= pPixmap->screen_x;
        *y_off -= pPixmap->screen_y;
    }
#endif
}

/* only used for CopyNtoN */
static inline void impedGetCompositeDeltas(DrawablePtr pDrawable, PixmapPtr pPixmap,
                                          int *x_off, int *y_off)
{
    *x_off = 0;
    *y_off = 0;

#ifdef COMPOSITE
    if (pDrawable->type == DRAWABLE_WINDOW) {
        *x_off -= pPixmap->screen_x;
        *y_off -= pPixmap->screen_y;
    }
#endif
}

extern _X_EXPORT Bool
impedPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats);
extern _X_EXPORT void
impedPictureDuplicate(PicturePtr pPicture, int new_gpu_index);

extern _X_EXPORT int
impedAddScreen(ScreenPtr protocol_master, ScreenPtr new);

extern _X_EXPORT Bool
impedRemoveScreen(ScreenPtr protocol_master, ScreenPtr slave);

extern _X_EXPORT Bool
impedRandR12Init(ScreenPtr pScreen);

Bool impedCheckPixmapBounding(ScreenPtr pScreen,
			      RRCrtcPtr rr_crtc, int x, int y, int w, int h);
#endif