internal static extern IntPtr cairo_surface_reference(IntPtr surface);
protected Surface(IntPtr ptr, bool owns) { surface = ptr; lock (surfaces.SyncRoot){ surfaces [ptr] = this; } if (!owns) { NativeMethods.cairo_surface_reference(ptr); } }