summaryrefslogtreecommitdiff
path: root/render/matrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'render/matrix.c')
-rw-r--r--render/matrix.c36
1 files changed, 35 insertions, 1 deletions
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];
+}
+