~ubuntu-branches/ubuntu/karmic/virtualbox-ose/karmic-updates

« back to all changes in this revision

Viewing changes to src/VBox/Additions/x11/x11include/xorg-server-1.6.0/regionstr.h

  • Committer: Bazaar Package Importer
  • Author(s): Felix Geyer
  • Date: 2009-09-14 18:25:07 UTC
  • mfrom: (0.4.1 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090914182507-c98g07mq16hjmn6d
Tags: 3.0.6-dfsg-1ubuntu1
* Merge from debian unstable (LP: #429697), remaining changes:
  - Enable DKMS support on virtualbox host and guest modules (LP: #267097)
    - Drop virtualbox-ose{-guest,}-modules-* package templates
    - Recommend *-source instead of *-modules packages
    - Replace error messages related to missing/mismatched
      kernel module accordingly
  - Autoload kernel module
    - LOAD_VBOXDRV_MODULE=1 in virtualbox-ose.default
  - Disable update action
    - patches/u01-disable-update-action.dpatch
  - Virtualbox should go in Accessories, not in System tools (LP: #288590)
    - virtualbox-ose-qt.files/virtualbox-ose.desktop
  - Add apport hook
    - virtualbox-ose.files/source_virtualbox-ose.py
    - virtualbox-ose.install
  - Add launchpad integration
    - control
    - lpi-bug.xpm
    - patches/u02-lp-integration.dpatch
  - virtualbox, virtualbox-* (names of the upstream proprietary packages)
    conflict with virtualbox-ose (LP: #379878)
* Make debug package depend on normal or guest utils package
* Drop patches/22-pulseaudio-stubs.dpatch (applied upstream)
* Rename Ubuntu specific patches to uXX-*.dpatch
* Fix lintian warnings in maintainer scripts

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/***********************************************************
2
 
 
3
 
Copyright 1987, 1998  The Open Group
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.
10
 
 
11
 
The above copyright notice and this permission notice shall be included in
12
 
all copies or substantial portions of the Software.
13
 
 
14
 
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
 
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
 
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
17
 
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18
 
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
 
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
 
 
21
 
Except as contained in this notice, the name of The Open Group shall not be
22
 
used in advertising or otherwise to promote the sale, use or other dealings
23
 
in this Software without prior written authorization from The Open Group.
24
 
 
25
 
 
26
 
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
27
 
 
28
 
                        All Rights Reserved
29
 
 
30
 
Permission to use, copy, modify, and distribute this software and its
31
 
documentation for any purpose and without fee is hereby granted,
32
 
provided that the above copyright notice appear in all copies and that
33
 
both that copyright notice and this permission notice appear in
34
 
supporting documentation, and that the name of Digital not be
35
 
used in advertising or publicity pertaining to distribution of the
36
 
software without specific, written prior permission.
37
 
 
38
 
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
39
 
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
40
 
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
41
 
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
42
 
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
43
 
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
44
 
SOFTWARE.
45
 
 
46
 
******************************************************************/
47
 
 
48
 
#ifndef REGIONSTRUCT_H
49
 
#define REGIONSTRUCT_H
50
 
 
51
 
typedef struct pixman_region16 RegionRec, *RegionPtr;
52
 
 
53
 
#include "miscstruct.h"
54
 
 
55
 
/* Return values from RectIn() */
56
 
 
57
 
#define rgnOUT 0
58
 
#define rgnIN  1
59
 
#define rgnPART 2
60
 
 
61
 
#define NullRegion ((RegionPtr)0)
62
 
 
63
 
/*
64
 
 *   clip region
65
 
 */
66
 
 
67
 
typedef struct pixman_region16_data RegDataRec, *RegDataPtr;
68
 
 
69
 
extern BoxRec miEmptyBox;
70
 
extern RegDataRec miEmptyData;
71
 
extern RegDataRec miBrokenData;
72
 
 
73
 
#define REGION_NIL(reg) ((reg)->data && !(reg)->data->numRects)
74
 
/* not a region */
75
 
#define REGION_NAR(reg) ((reg)->data == &miBrokenData)
76
 
#define REGION_NUM_RECTS(reg) ((reg)->data ? (reg)->data->numRects : 1)
77
 
#define REGION_SIZE(reg) ((reg)->data ? (reg)->data->size : 0)
78
 
#define REGION_RECTS(reg) ((reg)->data ? (BoxPtr)((reg)->data + 1) \
79
 
                                       : &(reg)->extents)
80
 
#define REGION_BOXPTR(reg) ((BoxPtr)((reg)->data + 1))
81
 
#define REGION_BOX(reg,i) (&REGION_BOXPTR(reg)[i])
82
 
#define REGION_TOP(reg) REGION_BOX(reg, (reg)->data->numRects)
83
 
#define REGION_END(reg) REGION_BOX(reg, (reg)->data->numRects - 1)
84
 
#define REGION_SZOF(n) (sizeof(RegDataRec) + ((n) * sizeof(BoxRec)))
85
 
 
86
 
#define REGION_CREATE(_pScreen, _rect, _size) \
87
 
    miRegionCreate(_rect, _size)
88
 
 
89
 
#define REGION_COPY(_pScreen, dst, src) \
90
 
    miRegionCopy(dst, src)
91
 
 
92
 
#define REGION_DESTROY(_pScreen, _pReg) \
93
 
    miRegionDestroy(_pReg)
94
 
 
95
 
#define REGION_INTERSECT(_pScreen, newReg, reg1, reg2) \
96
 
    miIntersect(newReg, reg1, reg2)
97
 
 
98
 
#define REGION_UNION(_pScreen, newReg, reg1, reg2) \
99
 
    miUnion(newReg, reg1, reg2)
100
 
 
101
 
#define REGION_SUBTRACT(_pScreen, newReg, reg1, reg2) \
102
 
    miSubtract(newReg, reg1, reg2)
103
 
 
104
 
#define REGION_INVERSE(_pScreen, newReg, reg1, invRect) \
105
 
    miInverse(newReg, reg1, invRect)
106
 
 
107
 
#define REGION_TRANSLATE(_pScreen, _pReg, _x, _y) \
108
 
    miTranslateRegion(_pReg, _x, _y)
109
 
 
110
 
#define RECT_IN_REGION(_pScreen, _pReg, prect) \
111
 
    miRectIn(_pReg, prect)
112
 
 
113
 
#define POINT_IN_REGION(_pScreen, _pReg, _x, _y, prect) \
114
 
    miPointInRegion(_pReg, _x, _y, prect)
115
 
 
116
 
#define REGION_APPEND(_pScreen, dstrgn, rgn) \
117
 
    miRegionAppend(dstrgn, rgn)
118
 
 
119
 
#define REGION_VALIDATE(_pScreen, badreg, pOverlap) \
120
 
    miRegionValidate(badreg, pOverlap)
121
 
 
122
 
#define BITMAP_TO_REGION(_pScreen, pPix) \
123
 
    (*(_pScreen)->BitmapToRegion)(pPix) /* no mi version?! */
124
 
 
125
 
#define RECTS_TO_REGION(_pScreen, nrects, prect, ctype) \
126
 
    miRectsToRegion(nrects, prect, ctype)
127
 
 
128
 
#define REGION_EQUAL(_pScreen, _pReg1, _pReg2) \
129
 
    miRegionEqual(_pReg1, _pReg2)
130
 
 
131
 
#define REGION_BREAK(_pScreen, _pReg) \
132
 
    miRegionBreak(_pReg)
133
 
 
134
 
#define REGION_INIT(_pScreen, _pReg, _rect, _size) \
135
 
{ \
136
 
    if ((_rect) != NULL)                                \
137
 
    { \
138
 
        (_pReg)->extents = *(_rect); \
139
 
        (_pReg)->data = (RegDataPtr)NULL; \
140
 
    } \
141
 
    else \
142
 
    { \
143
 
        (_pReg)->extents = miEmptyBox; \
144
 
        if (((_size) > 1) && ((_pReg)->data = \
145
 
                             (RegDataPtr)xalloc(REGION_SZOF(_size)))) \
146
 
        { \
147
 
            (_pReg)->data->size = (_size); \
148
 
            (_pReg)->data->numRects = 0; \
149
 
        } \
150
 
        else \
151
 
            (_pReg)->data = &miEmptyData; \
152
 
    } \
153
 
 }
154
 
 
155
 
 
156
 
#define REGION_UNINIT(_pScreen, _pReg) \
157
 
{ \
158
 
    if ((_pReg)->data && (_pReg)->data->size) { \
159
 
        xfree((_pReg)->data); \
160
 
        (_pReg)->data = NULL; \
161
 
    } \
162
 
}
163
 
 
164
 
#define REGION_RESET(_pScreen, _pReg, _pBox) \
165
 
{ \
166
 
    (_pReg)->extents = *(_pBox); \
167
 
    REGION_UNINIT(_pScreen, _pReg); \
168
 
    (_pReg)->data = (RegDataPtr)NULL; \
169
 
}
170
 
 
171
 
#define REGION_NOTEMPTY(_pScreen, _pReg) \
172
 
    !REGION_NIL(_pReg)
173
 
 
174
 
#define REGION_BROKEN(_pScreen, _pReg) \
175
 
    REGION_NAR(_pReg)
176
 
 
177
 
#define REGION_EMPTY(_pScreen, _pReg) \
178
 
{ \
179
 
    REGION_UNINIT(_pScreen, _pReg); \
180
 
    (_pReg)->extents.x2 = (_pReg)->extents.x1; \
181
 
    (_pReg)->extents.y2 = (_pReg)->extents.y1; \
182
 
    (_pReg)->data = &miEmptyData; \
183
 
}
184
 
 
185
 
#define REGION_EXTENTS(_pScreen, _pReg) \
186
 
    (&(_pReg)->extents)
187
 
 
188
 
#define REGION_NULL(_pScreen, _pReg) \
189
 
{ \
190
 
    (_pReg)->extents = miEmptyBox; \
191
 
    (_pReg)->data = &miEmptyData; \
192
 
}
193
 
 
194
 
#ifndef REGION_NULL
195
 
#define REGION_NULL(_pScreen, _pReg) \
196
 
    REGION_INIT(_pScreen, _pReg, NullBox, 1)
197
 
#endif
198
 
 
199
 
/* moved from mi.h */
200
 
 
201
 
extern void InitRegions (void);
202
 
 
203
 
extern RegionPtr miRegionCreate(
204
 
    BoxPtr /*rect*/,
205
 
    int /*size*/);
206
 
 
207
 
extern void miRegionInit(
208
 
    RegionPtr /*pReg*/,
209
 
    BoxPtr /*rect*/,
210
 
    int /*size*/);
211
 
 
212
 
extern void miRegionDestroy(
213
 
    RegionPtr /*pReg*/);
214
 
 
215
 
extern void miRegionUninit(
216
 
    RegionPtr /*pReg*/);
217
 
 
218
 
extern Bool miRegionCopy(
219
 
    RegionPtr /*dst*/,
220
 
    RegionPtr /*src*/);
221
 
 
222
 
extern Bool miIntersect(
223
 
    RegionPtr /*newReg*/,
224
 
    RegionPtr /*reg1*/,
225
 
    RegionPtr /*reg2*/);
226
 
 
227
 
extern Bool miUnion(
228
 
    RegionPtr /*newReg*/,
229
 
    RegionPtr /*reg1*/,
230
 
    RegionPtr /*reg2*/);
231
 
 
232
 
extern Bool miRegionAppend(
233
 
    RegionPtr /*dstrgn*/,
234
 
    RegionPtr /*rgn*/);
235
 
 
236
 
extern Bool miRegionValidate(
237
 
    RegionPtr /*badreg*/,
238
 
    Bool * /*pOverlap*/);
239
 
 
240
 
extern RegionPtr miRectsToRegion(
241
 
    int /*nrects*/,
242
 
    xRectanglePtr /*prect*/,
243
 
    int /*ctype*/);
244
 
 
245
 
extern Bool miSubtract(
246
 
    RegionPtr /*regD*/,
247
 
    RegionPtr /*regM*/,
248
 
    RegionPtr /*regS*/);
249
 
 
250
 
extern Bool miInverse(
251
 
    RegionPtr /*newReg*/,
252
 
    RegionPtr /*reg1*/,
253
 
    BoxPtr /*invRect*/);
254
 
 
255
 
extern int miRectIn(
256
 
    RegionPtr /*region*/,
257
 
    BoxPtr /*prect*/);
258
 
 
259
 
extern void miTranslateRegion(
260
 
    RegionPtr /*pReg*/,
261
 
    int /*x*/,
262
 
    int /*y*/);
263
 
 
264
 
extern void miRegionReset(
265
 
    RegionPtr /*pReg*/,
266
 
    BoxPtr /*pBox*/);
267
 
 
268
 
extern Bool miRegionBreak(
269
 
    RegionPtr /*pReg*/);
270
 
 
271
 
extern Bool miPointInRegion(
272
 
    RegionPtr /*pReg*/,
273
 
    int /*x*/,
274
 
    int /*y*/,
275
 
    BoxPtr /*box*/);
276
 
 
277
 
extern Bool miRegionEqual(
278
 
    RegionPtr /*pReg1*/,
279
 
    RegionPtr /*pReg2*/);
280
 
 
281
 
extern Bool miRegionNotEmpty(
282
 
    RegionPtr /*pReg*/);
283
 
 
284
 
extern void miRegionEmpty(
285
 
    RegionPtr /*pReg*/);
286
 
 
287
 
extern BoxPtr miRegionExtents(
288
 
    RegionPtr /*pReg*/);
289
 
 
290
 
extern void miPrintRegion(
291
 
    RegionPtr /*pReg*/);
292
 
 
293
 
#endif /* REGIONSTRUCT_H */