1 /*
2  * Copyright © 2002 Keith Packard
3  *
4  * Permission to use, copy, modify, distribute, and sell this software and its
5  * documentation for any purpose is hereby granted without fee, provided that
6  * the above copyright notice appear in all copies and that both that
7  * copyright notice and this permission notice appear in supporting
8  * documentation, and that the name of Keith Packard not be used in
9  * advertising or publicity pertaining to distribution of the software without
10  * specific, written prior permission.  Keith Packard makes no
11  * representations about the suitability of this software for any purpose.  It
12  * is provided "as is" without express or implied warranty.
13  *
14  * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16  * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20  * PERFORMANCE OF THIS SOFTWARE.
21  */
22 
23 #ifdef HAVE_DIX_CONFIG_H
24 #include <dix-config.h>
25 #endif
26 
27 #ifndef _DAMAGEEXTINT_H_
28 #define _DAMAGEEXTINT_H_
29 
30 #include <X11/X.h>
31 #include <X11/Xproto.h>
32 #include "misc.h"
33 #include "os.h"
34 #include "dixstruct.h"
35 #include "extnsionst.h"
36 #include <X11/extensions/damageproto.h>
37 #include "windowstr.h"
38 #include "selection.h"
39 #include "scrnintstr.h"
40 #include "damage.h"
41 #include "xfixes.h"
42 
43 typedef struct _DamageClient {
44     CARD32 major_version;
45     CARD32 minor_version;
46     int critical;
47 } DamageClientRec, *DamageClientPtr;
48 
49 #define GetDamageClient(pClient) ((DamageClientPtr)dixLookupPrivate(&(pClient)->devPrivates, DamageClientPrivateKey))
50 
51 typedef struct _DamageExt {
52     DamagePtr pDamage;
53     DrawablePtr pDrawable;
54     DamageReportLevel level;
55     ClientPtr pClient;
56     XID id;
57     XID drawable;
58 } DamageExtRec, *DamageExtPtr;
59 
60 #define VERIFY_DAMAGEEXT(pDamageExt, rid, client, mode) { \
61     int rc = dixLookupResourceByType((void **)&(pDamageExt), rid, \
62                                      DamageExtType, client, mode); \
63     if (rc != Success) \
64         return rc; \
65 }
66 
67 void
68  DamageExtSetCritical(ClientPtr pClient, Bool critical);
69 
70 void PanoramiXDamageInit(void);
71 void PanoramiXDamageReset(void);
72 
73 #endif                          /* _DAMAGEEXTINT_H_ */
74