From ff9d1cd843a9b0aba69a3d788b21d5f6af702590 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 13 Mar 2008 21:30:18 -0700 Subject: Add funcs to convert between protocol and pixman matrices --- render/matrix.c | 36 +++++++++++++++++++++++++++++++++++- render/picturestr.h | 11 ++++++++--- 2 files changed, 43 insertions(+), 4 deletions(-) (limited to 'render') diff --git a/render/matrix.c b/render/matrix.c index bd584cbd6..a97630473 100644 --- a/render/matrix.c +++ b/render/matrix.c @@ -222,7 +222,7 @@ PictureTransformTranslate (PictTransformPtr forward, PictureTransformInitTranslate (&t, tx, ty); if (!PictureTransformMultiply (forward, &t, forward)) return FALSE; - + PictureTransformInitTranslate (&t, -tx, -ty); if (!PictureTransformMultiply (reverse, reverse, &t)) return FALSE; @@ -349,3 +349,37 @@ PictureTransformIsInverse (PictTransform *a, PictTransform *b) return PictureTransformIsIdentity (&t); } +_X_EXPORT void +PictTransform_from_xRenderTransform (PictTransformPtr pict, + xRenderTransform *render) +{ + pict->matrix[0][0] = render->matrix11; + pict->matrix[0][1] = render->matrix12; + pict->matrix[0][2] = render->matrix13; + + pict->matrix[1][0] = render->matrix21; + pict->matrix[1][1] = render->matrix22; + pict->matrix[1][2] = render->matrix23; + + pict->matrix[2][0] = render->matrix31; + pict->matrix[2][1] = render->matrix32; + pict->matrix[2][2] = render->matrix33; +} + +void +xRenderTransform_from_PictTransform (xRenderTransform *render, + PictTransformPtr pict) +{ + render->matrix11 = pict->matrix[0][0]; + render->matrix12 = pict->matrix[0][1]; + render->matrix13 = pict->matrix[0][2]; + + render->matrix21 = pict->matrix[1][0]; + render->matrix22 = pict->matrix[1][1]; + render->matrix23 = pict->matrix[1][2]; + + render->matrix31 = pict->matrix[2][0]; + render->matrix32 = pict->matrix[2][1]; + render->matrix33 = pict->matrix[2][2]; +} + diff --git a/render/picturestr.h b/render/picturestr.h index f7a066459..93d86bd47 100644 --- a/render/picturestr.h +++ b/render/picturestr.h @@ -719,13 +719,18 @@ PictureTransformIsUnit(PictTransform *t); Bool PictureTransformIsScale(PictTransform *t); -Bool -PictureTransformIsScale(PictTransform *t); - Bool PictureTransformIsTranslate (PictTransform *t); Bool PictureTransformIsInverse(PictTransform *t, PictTransform *i); +void +PictTransform_from_xRenderTransform (PictTransformPtr pict, + xRenderTransform *render); + +void +xRenderTransform_from_PictTransform (xRenderTransform *render, + PictTransformPtr pict); + #endif /* _PICTURESTR_H_ */ -- cgit v1.2.3