public void Dispose() { if (_context == IntPtr.Zero || _surface == null) { return; } Native.CairoSurfaceMarkDirty(_surface); Native.CairoScale(_context, 1d / _factor, 1d / _factor); Native.CairoSetSourceSurface(_context, _surface, 0, 0); Native.CairoPaint(_context); _context = IntPtr.Zero; _surface.Dispose(); _surface = null; }
public void Dispose() { lock (_lock) { if (Dispatcher.UIThread.CheckAccess()) { if (_impl.CurrentCairoContext != IntPtr.Zero) { Draw(_impl.CurrentCairoContext, _surface, _factor); } else { DrawToWidget(_widget, _surface, Width, Height, _factor); } _surface.Dispose(); } else { _impl.SetNextRenderOperation(new RenderOp(_widget, _surface, _factor, Width, Height)); } _surface = null; } }
public void Dispose() { _surface?.Dispose(); _surface = null; }