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