示例#1
0
 public SkiaGraphicsView(Context context, IDrawable drawable = null) : base(context)
 {
     _scale         = Resources.DisplayMetrics.Density;
     _canvas        = new SkiaCanvas();
     _scalingCanvas = new ScalingCanvas(_canvas);
     Drawable       = drawable;
 }
        public SkiaBitmapExportContext(
            int width,
            int height,
            float displayScale,
            int dpi            = 72,
            bool disposeBitmap = true,
            bool transparent   = true) : base(width, height, dpi)
        {
            if (transparent)
            {
                var imageInfo = new SKImageInfo(width, height, SKColorType.Rgba8888, SKAlphaType.Premul);
                _surface = SKSurface.Create(imageInfo);
            }
            else
            {
                var imageInfo = new SKImageInfo(width, height, SKColorType.Rgb565, SKAlphaType.Opaque);
                _surface = SKSurface.Create(imageInfo);
            }

            if (_surface == null)
            {
                Logger.Warn("Unable to create a Skia surface");
                return;
            }

            _skiaCanvas = _surface.Canvas;
            var nativeCanvas = new SkiaCanvas
            {
                Canvas       = _skiaCanvas,
                DisplayScale = displayScale
            };

            _canvas        = new ScalingCanvas(nativeCanvas);
            _disposeBitmap = disposeBitmap;
        }
        public override void Dispose()
        {
            if (_skiaCanvas != null)
            {
                _skiaCanvas.Dispose();
                _skiaCanvas = null;
            }

            if (_surface != null)
            {
                _surface.Dispose();
                _surface = null;
            }

            if (_image != null)
            {
                _image.Dispose();
                _image = null;
            }

            if (_bitmap != null && _disposeBitmap)
            {
                _bitmap.Dispose();
                _bitmap = null;
            }

            _canvas = null;

            base.Dispose();
        }
示例#4
0
 public NativeGraphicsView(Context context, IAttributeSet attrs, IDrawable drawable = null) : base(context, attrs)
 {
     _scale         = Resources.DisplayMetrics.Density;
     _canvas        = new NativeCanvas(context);
     _scalingCanvas = new ScalingCanvas(_canvas);
     Drawable       = drawable;
 }
示例#5
0
 public SkiaGraphicsView(IDrawable?drawable = null)
 {
     _canvas        = new SkiaCanvas();
     _scalingCanvas = new ScalingCanvas(_canvas);
     Drawable       = drawable;
     PaintSurface  += OnPaintSurface;
 }
示例#6
0
        public GraphicsTimePicker(Context context) : base(context)
        {
            _scale         = Resources?.DisplayMetrics?.Density ?? 1;
            _canvas        = new PlatformCanvas(context);
            _scalingCanvas = new ScalingCanvas(_canvas);

            Touch += OnTouch;
        }
示例#7
0
 public SkiaGraphicsView(EvasObject parent, IDrawable drawable = null) : base(parent)
 {
     _canvas            = new SkiaCanvas();
     _scalingCanvas     = new ScalingCanvas(_canvas);
     Drawable           = drawable;
     PaintSurface      += OnPaintSurface;
     IgnorePixelScaling = true;
 }
        public GraphicsEditor(Context context) : base(context)
        {
            _scale         = Resources?.DisplayMetrics?.Density ?? 1;
            _canvas        = new PlatformCanvas(context);
            _scalingCanvas = new ScalingCanvas(_canvas);

            Background = null;
        }
示例#9
0
        public NativeBitmapExportContext(int width, int height, float displayScale = 1, int dpi = 72, bool disposeBitmap = true, bool transparent = true) : base(width, height, dpi)
        {
            _bitmap = Bitmap.CreateBitmap(
                width,
                height,
                transparent
                    ? Bitmap.Config.Argb8888
                    : Bitmap.Config.Rgb565);

            _androidCanvas = new Canvas(_bitmap);
            var nativeCanvas = new NativeCanvas(null)
            {
                Canvas = _androidCanvas,
            };

            _canvas = new ScalingCanvas(nativeCanvas)
            {
                DisplayScale = displayScale
            };
            _disposeBitmap = disposeBitmap;
        }
示例#10
0
        public static Bitmap GetPatternBitmap(
            this Paint paint,
            float scaleX,
            float scaleY)
        {
            var pattern = paint?.Pattern;

            if (pattern == null)
            {
                return(null);
            }

            using (var context = new NativeBitmapExportContext((int)(pattern.Width * scaleX), (int)(pattern.Height * scaleY), disposeBitmap: false))
            {
                var scalingCanvas = new ScalingCanvas(context.Canvas);
                scalingCanvas.Scale(scaleX, scaleY);

                pattern.Draw(scalingCanvas);

                return(context.Bitmap);
            }
        }
示例#11
0
 public SkiaGraphicsView(IDrawable drawable = null)
 {
     _canvas        = new SkiaCanvas();
     _scalingCanvas = new ScalingCanvas(_canvas);
     Drawable       = drawable;
 }
示例#12
0
 public DirectRenderer(Context context)
 {
     _canvas        = new NativeCanvas(context);
     _scalingCanvas = new ScalingCanvas(_canvas);
 }
示例#13
0
 public WDSkiaDirectRenderer()
 {
     _canvas        = new SkiaCanvas();
     _scalingCanvas = new ScalingCanvas(_canvas);
 }