void DrawPixbuf(Cairo.Context ctx, Gdk.Pixbuf img, double x, double y, ImageDescription idesc) { ctx.Save (); ctx.Translate (x, y); ctx.Scale (idesc.Size.Width / (double)img.Width, idesc.Size.Height / (double)img.Height); Gdk.CairoHelper.SetSourcePixbuf (ctx, img, 0, 0); // Fixes blur issue when rendering on an image surface ((Cairo.SurfacePattern)ctx.GetSource ()).Filter = Cairo.Filter.Fast; if (idesc.Alpha >= 1) ctx.Paint (); else ctx.PaintWithAlpha (idesc.Alpha); ctx.Restore (); }