internal UGContext(Graphics native, UGSize canvasRect, float scale, ColorService colorService, Action disposeAction) { Native = native; CanvasSize = canvasRect; ScaleFactor = scale; _colorService = colorService; _disposeAction = disposeAction; native.CompositingQuality = CompositingQuality.HighQuality | CompositingQuality.GammaCorrected; native.PixelOffsetMode = PixelOffsetMode.Half; native.SmoothingMode = SmoothingMode.AntiAlias; }
protected override void Dispose(bool disposing) { base.Dispose(disposing); if (disposing) { if (_colorService != null) { _colorService.Dispose(); _colorService = null; } } }
public IUGContext CreateDrawingSession() { var context = Graphics.FromImage(Native); context.PageScale = Scale; context.PageUnit = GraphicsUnit.Pixel; var colorService = new ColorService(); return(new UGContext(context, Size, Scale, colorService, () => { colorService.Dispose(); context.Dispose(); context = null; })); }
internal UGContext(Graphics native, UGSize canvasRect, float scale, ColorService service) : this(native, canvasRect, scale, service, null) { }
protected virtual void Initialize() { DoubleBuffered = true; _colorService = new ColorService(); }