Browse Source

Make transforms work.

Now draws something resembling the proper content.
pull/10/head
Steven Kirk 12 years ago
parent
commit
b9609d3621
  1. 15
      Cairo/Perspex.Cairo/Media/DrawingContext.cs

15
Cairo/Perspex.Cairo/Media/DrawingContext.cs

@ -12,6 +12,7 @@ namespace Perspex.Cairo.Media
using Perspex.Media;
using IBitmap = Perspex.Media.Imaging.IBitmap;
using Matrix = Perspex.Matrix;
using CairoMatrix = global::Cairo.Matrix;
/// <summary>
/// Draws using Direct2D1.
@ -125,7 +126,19 @@ namespace Perspex.Cairo.Media
/// <returns>A disposable used to undo the transformation.</returns>
public IDisposable PushTransform(Matrix matrix)
{
return Disposable.Empty;
var m = Convert(matrix);
this.context.Transform(m);
return Disposable.Create(() =>
{
m.Invert();
this.context.Transform(m);
});
}
private static CairoMatrix Convert(Matrix m)
{
return new CairoMatrix(m.M11, m.M12, m.M21, m.M22, m.OffsetX, m.OffsetY);
}
private void SetBrush(Brush brush)

Loading…
Cancel
Save