cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Copyright © 2007 Keith Packard
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Permission to use, copy, modify, distribute, and sell this software and its
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * documentation for any purpose is hereby granted without fee, provided that
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * the above copyright notice appear in all copies and that both that copyright
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * notice and this permission notice appear in supporting documentation, and
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * that the name of the copyright holders not be used in advertising or
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * publicity pertaining to distribution of the software without specific,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * written prior permission. The copyright holders make no representations
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * about the suitability of this software for any purpose. It is provided "as
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * is" without express or implied warranty.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * OF THIS SOFTWARE.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifndef _RRTRANSFORM_H_
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define _RRTRANSFORM_H_
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include <X11/extensions/randr.h>
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "picturestr.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct _rrTransform RRTransformRec, *RRTransformPtr;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncstruct _rrTransform {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PictTransform transform;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync struct pict_f_transform f_transform;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync struct pict_f_transform f_inverse;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PictFilterPtr filter;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xFixed *params;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int nparams;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int width;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int height;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync};
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncRRTransformInit (RRTransformPtr transform);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncRRTransformFini (RRTransformPtr transform);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncRRTransformEqual (RRTransformPtr a, RRTransformPtr b);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncRRTransformSetFilter (RRTransformPtr dst,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PictFilterPtr filter,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xFixed *params,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int nparams,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int width,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int height);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncRRTransformCopy (RRTransformPtr dst, RRTransformPtr src);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncRRTransformCompute (int x,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int y,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int width,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int height,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Rotation rotation,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync RRTransformPtr rr_transform,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PictTransformPtr transform,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync struct pict_f_transform *f_transform,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync struct pict_f_transform *f_inverse);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif /* _RRTRANSFORM_H_ */