Xdamage.h revision 81c81b28
1af7c02bdSmrg/*
281c81b28Smrg * $Id: Xdamage.h,v 1.1.1.2 2009/11/08 09:42:59 mrg Exp $
3af7c02bdSmrg *
4af7c02bdSmrg * Copyright © 2003 Keith Packard
5af7c02bdSmrg *
6af7c02bdSmrg * Permission to use, copy, modify, distribute, and sell this software and its
7af7c02bdSmrg * documentation for any purpose is hereby granted without fee, provided that
8af7c02bdSmrg * the above copyright notice appear in all copies and that both that
9af7c02bdSmrg * copyright notice and this permission notice appear in supporting
10af7c02bdSmrg * documentation, and that the name of Keith Packard not be used in
11af7c02bdSmrg * advertising or publicity pertaining to distribution of the software without
12af7c02bdSmrg * specific, written prior permission.  Keith Packard makes no
13af7c02bdSmrg * representations about the suitability of this software for any purpose.  It
14af7c02bdSmrg * is provided "as is" without express or implied warranty.
15af7c02bdSmrg *
16af7c02bdSmrg * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17af7c02bdSmrg * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18af7c02bdSmrg * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
19af7c02bdSmrg * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
20af7c02bdSmrg * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
21af7c02bdSmrg * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22af7c02bdSmrg * PERFORMANCE OF THIS SOFTWARE.
23af7c02bdSmrg */
24af7c02bdSmrg
25af7c02bdSmrg#ifndef _XDAMAGE_H_
26af7c02bdSmrg#define _XDAMAGE_H_
27af7c02bdSmrg
28af7c02bdSmrg#include <X11/extensions/damagewire.h>
29af7c02bdSmrg#include <X11/extensions/Xfixes.h>
30af7c02bdSmrg#include <X11/Xfuncproto.h>
31af7c02bdSmrg
32af7c02bdSmrg#define XDAMAGE_1_1_INTERFACE
33af7c02bdSmrg
34af7c02bdSmrgtypedef XID Damage;
35af7c02bdSmrg
36af7c02bdSmrgtypedef struct {
37af7c02bdSmrg    int type;			/* event base */
38af7c02bdSmrg    unsigned long serial;
39af7c02bdSmrg    Bool send_event;
40af7c02bdSmrg    Display *display;
41af7c02bdSmrg    Drawable drawable;
42af7c02bdSmrg    Damage damage;
43af7c02bdSmrg    int level;
44af7c02bdSmrg    Bool more;			/* more events will be delivered immediately */
45af7c02bdSmrg    Time timestamp;
46af7c02bdSmrg    XRectangle area;
47af7c02bdSmrg    XRectangle geometry;
48af7c02bdSmrg} XDamageNotifyEvent;
49af7c02bdSmrg
50af7c02bdSmrg_XFUNCPROTOBEGIN
51af7c02bdSmrg
5281c81b28SmrgBool XDamageQueryExtension (Display *dpy,
5381c81b28Smrg                            int *event_base_return,
5481c81b28Smrg                            int *error_base_return);
55af7c02bdSmrg
56af7c02bdSmrgStatus XDamageQueryVersion (Display *dpy,
5781c81b28Smrg			    int     *major_version_return,
5881c81b28Smrg			    int     *minor_version_return);
59af7c02bdSmrg
60af7c02bdSmrgDamage
61af7c02bdSmrgXDamageCreate (Display	*dpy, Drawable drawable, int level);
62af7c02bdSmrg
63af7c02bdSmrgvoid
64af7c02bdSmrgXDamageDestroy (Display *dpy, Damage damage);
65af7c02bdSmrg
66af7c02bdSmrgvoid
67af7c02bdSmrgXDamageSubtract (Display *dpy, Damage damage,
68af7c02bdSmrg		 XserverRegion repair, XserverRegion parts);
69af7c02bdSmrg
70af7c02bdSmrgvoid
71af7c02bdSmrgXDamageAdd (Display *dpy, Drawable drawable, XserverRegion region);
72af7c02bdSmrg
73af7c02bdSmrg_XFUNCPROTOEND
74af7c02bdSmrg
75af7c02bdSmrg#endif /* _XDAMAGE_H_ */
76