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_ */ 80