[PATCH] Add funcs to convert between protocol and pixman matrices

Keith Packard keithp at keithp.com
Fri Nov 14 14:12:30 PST 2008


---
 render/matrix.c     |   36 +++++++++++++++++++++++++++++++++++-
 render/picturestr.h |   11 ++++++++---
 2 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/render/matrix.c b/render/matrix.c
index bd584cb..a976304 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 f7a0664..93d86bd 100644
--- a/render/picturestr.h
+++ b/render/picturestr.h
@@ -720,12 +720,17 @@ 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_ */
-- 
1.5.6.5




More information about the xorg mailing list