Imported Upstream version 1.1.4
[platform/upstream/libXdamage.git] / include / X11 / extensions / Xdamage.h
1 /*
2  * Copyright © 2003 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 #ifndef _XDAMAGE_H_
24 #define _XDAMAGE_H_
25
26 #include <X11/extensions/damagewire.h>
27 #include <X11/extensions/Xfixes.h>
28 #include <X11/Xfuncproto.h>
29
30 #define XDAMAGE_1_1_INTERFACE
31
32 typedef XID Damage;
33
34 typedef struct {
35     int type;                   /* event base */
36     unsigned long serial;
37     Bool send_event;
38     Display *display;
39     Drawable drawable;
40     Damage damage;
41     int level;
42     Bool more;                  /* more events will be delivered immediately */
43     Time timestamp;
44     XRectangle area;
45     XRectangle geometry;
46 } XDamageNotifyEvent;
47
48 _XFUNCPROTOBEGIN
49
50 Bool XDamageQueryExtension (Display *dpy,
51                             int *event_base_return,
52                             int *error_base_return);
53
54 Status XDamageQueryVersion (Display *dpy,
55                             int     *major_version_return,
56                             int     *minor_version_return);
57
58 Damage
59 XDamageCreate (Display  *dpy, Drawable drawable, int level);
60
61 void
62 XDamageDestroy (Display *dpy, Damage damage);
63
64 void
65 XDamageSubtract (Display *dpy, Damage damage,
66                  XserverRegion repair, XserverRegion parts);
67
68 void
69 XDamageAdd (Display *dpy, Drawable drawable, XserverRegion region);
70
71 _XFUNCPROTOEND
72
73 #endif /* _XDAMAGE_H_ */