First import
[xorg_rtime.git] / xorg-server-1.4 / miext / damage / damage.h
blob4cfc8127de057d3d5cbe7d22283a26f418b40ccc
1 /*
2 * Copyright © 2003 Keith Packard
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.
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.
23 #ifdef HAVE_DIX_CONFIG_H
24 #include <dix-config.h>
25 #endif
27 #ifndef _DAMAGE_H_
28 #define _DAMAGE_H_
30 typedef struct _damage *DamagePtr;
32 typedef enum _damageReportLevel {
33 DamageReportRawRegion,
34 DamageReportDeltaRegion,
35 DamageReportBoundingBox,
36 DamageReportNonEmpty,
37 DamageReportNone
38 } DamageReportLevel;
40 typedef void (*DamageReportFunc) (DamagePtr pDamage, RegionPtr pRegion, void *closure);
41 typedef void (*DamageDestroyFunc) (DamagePtr pDamage, void *closure);
43 Bool
44 DamageSetup (ScreenPtr pScreen);
46 DamagePtr
47 DamageCreate (DamageReportFunc damageReport,
48 DamageDestroyFunc damageDestroy,
49 DamageReportLevel damageLevel,
50 Bool isInternal,
51 ScreenPtr pScreen,
52 void * closure);
54 void
55 DamageDrawInternal (ScreenPtr pScreen, Bool enable);
57 void
58 DamageRegister (DrawablePtr pDrawable,
59 DamagePtr pDamage);
61 void
62 DamageUnregister (DrawablePtr pDrawable,
63 DamagePtr pDamage);
65 void
66 DamageDestroy (DamagePtr pDamage);
68 Bool
69 DamageSubtract (DamagePtr pDamage,
70 const RegionPtr pRegion);
72 void
73 DamageEmpty (DamagePtr pDamage);
75 RegionPtr
76 DamageRegion (DamagePtr pDamage);
78 void
79 DamageDamageRegion (DrawablePtr pDrawable,
80 const RegionPtr pRegion);
82 void
83 DamageSetReportAfterOp (DamagePtr pDamage, Bool reportAfter);
85 #endif /* _DAMAGE_H_ */