示例#1
0
        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;
            }));
        }
示例#4
0
 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();
        }