Пример #1
0
 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;
 }