Commit | Line | Data |
---|---|---|
a09e091a JB |
1 | /* |
2 | * Copyright © 2007 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 copyright | |
7 | * notice and this permission notice appear in supporting documentation, and | |
8 | * that the name of the copyright holders not be used in advertising or | |
9 | * publicity pertaining to distribution of the software without specific, | |
10 | * written prior permission. The copyright holders make no representations | |
11 | * about the suitability of this software for any purpose. It is provided "as | |
12 | * is" without express or implied warranty. | |
13 | * | |
14 | * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, | |
15 | * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO | |
16 | * EVENT SHALL THE COPYRIGHT HOLDERS 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 PERFORMANCE | |
20 | * OF THIS SOFTWARE. | |
21 | */ | |
22 | ||
23 | #ifndef _RRTRANSFORM_H_ | |
24 | #define _RRTRANSFORM_H_ | |
25 | ||
26 | #include <X11/extensions/randr.h> | |
27 | #include "picturestr.h" | |
28 | ||
29 | typedef struct _rrTransform RRTransformRec, *RRTransformPtr; | |
30 | ||
31 | struct _rrTransform { | |
32 | PictTransform transform; | |
33 | struct pict_f_transform f_transform; | |
34 | struct pict_f_transform f_inverse; | |
35 | PictFilterPtr filter; | |
36 | xFixed *params; | |
37 | int nparams; | |
38 | int width; | |
39 | int height; | |
40 | }; | |
41 | ||
42 | extern _X_EXPORT void | |
43 | RRTransformInit(RRTransformPtr transform); | |
44 | ||
45 | extern _X_EXPORT void | |
46 | RRTransformFini(RRTransformPtr transform); | |
47 | ||
48 | extern _X_EXPORT Bool | |
49 | RRTransformEqual(RRTransformPtr a, RRTransformPtr b); | |
50 | ||
51 | extern _X_EXPORT Bool | |
52 | ||
53 | RRTransformSetFilter(RRTransformPtr dst, | |
54 | PictFilterPtr filter, | |
55 | xFixed * params, int nparams, int width, int height); | |
56 | ||
57 | extern _X_EXPORT Bool | |
58 | RRTransformCopy(RRTransformPtr dst, RRTransformPtr src); | |
59 | ||
60 | /* | |
61 | * Compute the complete transformation matrix including | |
62 | * client-specified transform, rotation/reflection values and the crtc | |
63 | * offset. | |
64 | * | |
65 | * Return TRUE if the resulting transform is not a simple translation. | |
66 | */ | |
67 | extern _X_EXPORT Bool | |
68 | ||
69 | RRTransformCompute(int x, | |
70 | int y, | |
71 | int width, | |
72 | int height, | |
73 | Rotation rotation, | |
74 | RRTransformPtr rr_transform, | |
75 | PictTransformPtr transform, | |
76 | struct pict_f_transform *f_transform, | |
77 | struct pict_f_transform *f_inverse); | |
78 | ||
79 | #endif /* _RRTRANSFORM_H_ */ |