зеркало из https://github.com/mono/SkiaSharp.git
Updated the sample to write the scaling factor as a footer
This commit is contained in:
Родитель
c9cf249ec5
Коммит
668348982a
|
@ -62,20 +62,36 @@ namespace SkiaSharpSample.FormsSample
|
||||||
{
|
{
|
||||||
Sample?.DrawSample(e.Surface.Canvas, e.Info.Width, e.Info.Height);
|
Sample?.DrawSample(e.Surface.Canvas, e.Info.Width, e.Info.Height);
|
||||||
|
|
||||||
e.Surface.Canvas.ResetMatrix();
|
|
||||||
var view = sender as SKCanvasView;
|
var view = sender as SKCanvasView;
|
||||||
var paint = new SKPaint { TextSize = 20 };
|
DrawScaling(view, e.Surface.Canvas, view.CanvasSize);
|
||||||
e.Surface.Canvas.DrawText($"{view.CanvasSize.Width} / {view.Width} = {view.CanvasSize.Width / view.Width}", 10, 30, paint);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnPaintGLSample(object sender, SKPaintGLSurfaceEventArgs e)
|
private void OnPaintGLSample(object sender, SKPaintGLSurfaceEventArgs e)
|
||||||
{
|
{
|
||||||
Sample?.DrawSample(e.Surface.Canvas, e.RenderTarget.Width, e.RenderTarget.Height);
|
Sample?.DrawSample(e.Surface.Canvas, e.RenderTarget.Width, e.RenderTarget.Height);
|
||||||
|
|
||||||
e.Surface.Canvas.ResetMatrix();
|
|
||||||
var view = sender as SKGLView;
|
var view = sender as SKGLView;
|
||||||
var paint = new SKPaint { TextSize = 20 };
|
DrawScaling(view, e.Surface.Canvas, view.CanvasSize);
|
||||||
e.Surface.Canvas.DrawText($"{view.CanvasSize.Width} / {view.Width} = {view.CanvasSize.Width / view.Width}", 10, 30, paint);
|
}
|
||||||
|
|
||||||
|
private void DrawScaling(View view, SKCanvas canvas, SKSize canvasSize)
|
||||||
|
{
|
||||||
|
// make sure no previous transforms still apply
|
||||||
|
canvas.ResetMatrix();
|
||||||
|
|
||||||
|
// get the current scale
|
||||||
|
var scale = canvasSize.Width / (float)view.Width;
|
||||||
|
|
||||||
|
// write the scale into the bottom left
|
||||||
|
using (var paint = new SKPaint())
|
||||||
|
{
|
||||||
|
paint.IsAntialias = true;
|
||||||
|
paint.TextSize = 20 * scale;
|
||||||
|
|
||||||
|
var text = $"Current scaling = {scale:0.0}x";
|
||||||
|
var padding = 10 * scale;
|
||||||
|
canvas.DrawText(text, padding, canvasSize.Height - padding, paint);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RefreshSamples()
|
private void RefreshSamples()
|
||||||
|
|
Загрузка…
Ссылка в новой задаче