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