summaryrefslogtreecommitdiff
path: root/drv/drv_scrnintstr.h
blob: 84f6a18b264e0a5bcf6eeddfdbb36becc90f1f7e (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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150

#ifndef DRV_SCRNINTSTR_H
#define DRV_SCRNINTSTR_H

#include "drv_screenint.h"
#include "drv_pixmap.h"

#include "pixmap.h"
#include "scrnintstr.h"

#include "list.h"

typedef    void (* DrvSetScreenPixmapProcPtr)(DrvScreenPtr pScreen, DrvPixmapPtr /*pPix*/);

typedef    void (* DrvQueryBestSizeProcPtr)(
	int /*class*/,
	unsigned short * /*pwidth*/,
	unsigned short * /*pheight*/,
	DrvScreenPtr /*pScreen*/);


typedef drvCopyProc (*GetCopyAreaFunctionProcPtr)(
        DrvPixmapPtr pSrc,
        DrvPixmapPtr pDst);

typedef drvCopyProc (*GetCopyPlaneFunctionProcPtr)(
        DrvPixmapPtr pSrc,
        DrvPixmapPtr pDst, int bitplane);

typedef    DrvPixmapPtr (* DrvCreatePixmapProcPtr)(
	DrvScreenPtr /*pScreen*/,
	int /*width*/,
	int /*height*/,
	int /*depth*/,
	unsigned /*usage_hint*/,
        PixmapPtr pParent);

typedef    Bool (* DrvDestroyPixmapProcPtr)(
	DrvPixmapPtr /*pPixmap*/);

typedef    Bool (* DrvModifyPixmapHeaderProcPtr)(
	DrvPixmapPtr /*pPixmap*/,
	int /*width*/,
	int /*height*/,
	int /*depth*/,
	int /*bitsPerPixel*/,
	int /*devKind*/,
	pointer /*pPixData*/);

typedef    RegionPtr (* DrvBitmapToRegionProcPtr)(
       DrvPixmapPtr /*pPix*/);

typedef    Bool (* DrvCloseScreenProcPtr)(
	DrvScreenPtr /*pScreen*/);

typedef    void (* DrvScreenBlockHandlerProcPtr)(
	DrvScreenPtr pDrvScreen,
	pointer /*blockData*/,
	pointer /*pTimeout*/,
	pointer /*pReadmask*/);

typedef    void (* DrvScreenWakeupHandlerProcPtr)(
         DrvScreenPtr pDrvScreen,
	 pointer /*wakeupData*/,
	 unsigned long /*result*/,
	 pointer /*pReadMask*/);

typedef    Bool (* DrvCreateScreenResourcesProcPtr)(
	DrvScreenPtr /*pScreen*/);


typedef    Bool (* DrvCreateColormapProcPtr)(
        DrvScreenPtr, ColormapPtr /*pColormap*/);

typedef    void (* DrvDestroyColormapProcPtr)(
        DrvScreenPtr, ColormapPtr /*pColormap*/);

typedef    void (* DrvInstallColormapProcPtr)(
        DrvScreenPtr, ColormapPtr /*pColormap*/);

typedef    void (* DrvUninstallColormapProcPtr)(
        DrvScreenPtr, ColormapPtr /*pColormap*/);

typedef    int (* DrvListInstalledColormapsProcPtr) (
	DrvScreenPtr /*pScreen*/,
	XID* /*pmaps */);

typedef    void (* DrvStoreColorsProcPtr)(
        DrvScreenPtr,
	ColormapPtr /*pColormap*/,
	int /*ndef*/,
	xColorItem * /*pdef*/);

typedef struct _DrvScreen
{    /* new driver interface */

    ScreenPtr pScreen;
    int myNum;

    GetCopyAreaFunctionProcPtr GetCopyAreaFunction;
    GetCopyPlaneFunctionProcPtr GetCopyPlaneFunction;
      
    PixmapWindowFixupProcPtr PixmapWindowFixup;
    DrvGetImageProcPtr		GetImage;
    DrvGetSpansProcPtr		GetSpans;

    DrvCreatePixmapProcPtr		CreatePixmap;
    DrvDestroyPixmapProcPtr	DestroyPixmap;
    DrvModifyPixmapHeaderProcPtr	ModifyPixmapHeader;

    DrvCreateScreenResourcesProcPtr CreateScreenResources;
    DrvCreateGCProcPtr	CreateGC;

    DrvQueryBestSizeProcPtr	QueryBestSize;
    DrvBitmapToRegionProcPtr	PixmapToRegion;
    DrvCloseScreenProcPtr		CloseScreen;

    DrvScreenBlockHandlerProcPtr	BlockHandler;
    DrvScreenWakeupHandlerProcPtr	WakeupHandler;

    DrvCreateColormapProcPtr	CreateColormap;
    DrvDestroyColormapProcPtr	DestroyColormap;
    DrvInstallColormapProcPtr	InstallColormap;
    DrvUninstallColormapProcPtr	UninstallColormap;
    DrvListInstalledColormapsProcPtr ListInstalledColormaps;
    DrvStoreColorsProcPtr		StoreColors;

    ResolveColorProcPtr		ResolveColor;

    DrvSetScreenPixmapProcPtr SetScreenPixmap;
    pointer blockData;
    pointer wakeupData;

    PrivateRec	*devPrivates;

    /* initial information used to setup protocol screens */
    short		x, y, width, height;
    short		mmWidth, mmHeight;
    short		numDepths;
    DepthPtr       	allowedDepths;
    unsigned long	whitePixel, blackPixel;
    short       	numVisuals;
    VisualPtr		visuals;

    struct list imped_list; /* list to keep track of all drv screens for private mangling */
    DrvPixmapPtr        screenPixmap;
} DrvScreenRec;

#endif