public void DrawText(IntPtr buffer, int length, float x, float y, SKPaint paint) { if (buffer == IntPtr.Zero && length != 0) { throw new ArgumentNullException(nameof(buffer)); } if (paint == null) { throw new ArgumentNullException(nameof(paint)); } if (paint.TextAlign != SKTextAlign.Left) { var width = paint.MeasureText(buffer, length); if (paint.TextAlign == SKTextAlign.Center) { width *= 0.5f; } x -= width; } using var blob = SKTextBlob.Create(buffer, length, paint.TextEncoding, paint.GetFont()); if (blob == null) { return; } DrawText(blob, x, y, paint); }
public void DrawTextOnPath(string text, SKPath path, SKPoint offset, bool warpGlyphs, SKFont font, SKPaint paint) { if (text == null) { throw new ArgumentNullException(nameof(text)); } if (path == null) { throw new ArgumentNullException(nameof(path)); } if (font == null) { throw new ArgumentNullException(nameof(font)); } if (paint == null) { throw new ArgumentNullException(nameof(paint)); } if (warpGlyphs) { using var textPath = font.GetTextPathOnPath(text, path, paint.TextAlign, offset); DrawPath(textPath, paint); } else { using var blob = SKTextBlob.CreatePathPositioned(text, font, path, paint.TextAlign, offset); if (blob != null) { DrawText(blob, 0, 0, paint); } } }
public void DrawText(byte[] text, float x, float y, SKPaint paint) { if (text == null) { throw new ArgumentNullException(nameof(text)); } if (paint == null) { throw new ArgumentNullException(nameof(paint)); } if (paint.TextAlign != SKTextAlign.Left) { var width = paint.MeasureText(text); if (paint.TextAlign == SKTextAlign.Center) { width *= 0.5f; } x -= width; } using var blob = SKTextBlob.Create(text, paint.TextEncoding, paint.GetFont()); if (blob == null) { return; } DrawText(blob, x, y, paint); }
// Build public SKTextBlob Build() { var blob = SKTextBlob.GetObject(SkiaApi.sk_textblob_builder_make(Handle)); GC.KeepAlive(this); return(blob); }
public void DrawText(SKTextBlob text, float x, float y, SKPaint paint) { if (text == null) { throw new ArgumentNullException(nameof(text)); } if (paint == null) { throw new ArgumentNullException(nameof(paint)); } SkiaApi.sk_canvas_draw_text_blob(Handle, text.Handle, x, y, paint.Handle); }
public void DrawPositionedText(IntPtr buffer, int length, SKPoint[] points, SKPaint paint) { if (buffer == IntPtr.Zero && length != 0) { throw new ArgumentNullException(nameof(buffer)); } if (paint == null) { throw new ArgumentNullException(nameof(paint)); } if (points == null) { throw new ArgumentNullException(nameof(points)); } using var blob = SKTextBlob.CreatePositioned(buffer, length, paint.TextEncoding, paint.GetFont(), points); if (blob == null) { return; } DrawText(blob, 0, 0, paint); }
public void DrawPositionedText(byte[] text, SKPoint[] points, SKPaint paint) { if (text == null) { throw new ArgumentNullException(nameof(text)); } if (paint == null) { throw new ArgumentNullException(nameof(paint)); } if (points == null) { throw new ArgumentNullException(nameof(points)); } using var blob = SKTextBlob.CreatePositioned(text, paint.TextEncoding, paint.GetFont(), points); if (blob == null) { return; } DrawText(blob, 0, 0, paint); }
// Build public SKTextBlob Build() => SKTextBlob.GetObject(SkiaApi.sk_textblob_builder_make(Handle));