From 57daad000aa31c7bcfa1f76b90d40da5a21da041 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Philippe=20Bruy=C3=A8re?= Date: Wed, 12 Jan 2022 15:38:57 +0100 Subject: [PATCH] remove old classes --- Backends/VkvgBackend/src/Context.cs | 288 ---------------------- Backends/VkvgBackend/src/NativeMethods.cs | 282 --------------------- Backends/VkvgBackend/src/Pattern.cs | 72 ------ Backends/VkvgBackend/src/SvgHandle.cs | 44 ---- 4 files changed, 686 deletions(-) delete mode 100644 Backends/VkvgBackend/src/Context.cs delete mode 100644 Backends/VkvgBackend/src/NativeMethods.cs delete mode 100644 Backends/VkvgBackend/src/Pattern.cs delete mode 100644 Backends/VkvgBackend/src/SvgHandle.cs diff --git a/Backends/VkvgBackend/src/Context.cs b/Backends/VkvgBackend/src/Context.cs deleted file mode 100644 index 0e7c3be6..00000000 --- a/Backends/VkvgBackend/src/Context.cs +++ /dev/null @@ -1,288 +0,0 @@ -// Copyright (c) 2018-2020 Jean-Philippe Bruyère -// -// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT) - -using System; -using System.Text; -using System.Linq; -using Drawing2D; - -namespace Crow.VkvgBackend -{ - public class Context : IContext - { - internal IntPtr handle = IntPtr.Zero; - - internal Context (Surface surf) - { - handle = NativeMethods.vkvg_create(surf.handle); - this.FillRule = FillRule.NonZero; - } - ~Context() - { - Dispose(false); - } - - public double LineWidth - { - get => NativeMethods.vkvg_get_line_width(handle); - set { NativeMethods.vkvg_set_line_width(handle, (float)value); } - } - public LineJoin LineJoin - { - get => NativeMethods.vkvg_get_line_join(handle); - set { NativeMethods.vkvg_set_line_join(handle, value); } - } - public LineCap LineCap - { - get => NativeMethods.vkvg_get_line_cap(handle); - set { NativeMethods.vkvg_set_line_cap(handle, value); } - } - public Operator Operator - { - set { NativeMethods.vkvg_set_operator(handle, value); } - get { return NativeMethods.vkvg_get_operator(handle); } - } - public FillRule FillRule - { - set { NativeMethods.vkvg_set_fill_rule(handle, value); } - get { return NativeMethods.vkvg_get_fill_rule(handle); } - } - public Drawing2D.FontExtents FontExtents - { - get - { - FontExtents e; - NativeMethods.vkvg_font_extents(handle, out e); - return new Drawing2D.FontExtents (e.Ascent, e.Descent, e.Height, e.MaxXAdvance, e.MaxYAdvance); - } - } - public Antialias Antialias { - set; - get; - } - - public void Clear() => NativeMethods.vkvg_clear(handle); - - public void Clip() => NativeMethods.vkvg_clip(handle); - public void ClipPreserve() => NativeMethods.vkvg_clip_preserve(handle); - public void ResetClip() => NativeMethods.vkvg_reset_clip(handle); - - public void Save() => NativeMethods.vkvg_save(handle); - public void Restore() => NativeMethods.vkvg_restore(handle); - public void Flush() => NativeMethods.vkvg_flush(handle); - public void Paint() => NativeMethods.vkvg_paint(handle); - public void PaintWithAlpha (double alpha) => Paint(); - - public void SetFontSize (double size) => NativeMethods.vkvg_set_font_size(handle, (uint)size); - - public void ClosePath() => NativeMethods.vkvg_close_path (handle); - public void NewPath() => NativeMethods.vkvg_new_path(handle); - public void NewSubPath() => NativeMethods.vkvg_new_sub_path(handle); - public void Arc(double xc, double yc, double radius, double a1, double a2) - => NativeMethods.vkvg_arc(handle, (float)xc, (float)yc, (float)radius, (float)a1, (float)a2); - public void Arc (PointD center, double radius, double angle1, double angle2) - => NativeMethods.vkvg_arc (handle, (float)center.X, (float)center.Y, (float)radius, (float)angle1, (float)angle2); - public void ArcNegative (PointD center, double radius, double angle1, double angle2) - => NativeMethods.vkvg_arc_negative (handle, (float)center.X, (float)center.Y, (float)radius, (float)angle1, (float)angle2); - public void ArcNegative(double xc, double yc, double radius, double a1, double a2) - => NativeMethods.vkvg_arc_negative(handle, (float)xc, (float)yc, (float)radius, (float)a1, (float)a2); - /*public IntPtr Handle => handle; - - public void AddReference() - { - NativeMethods.vkvg_reference(handle); - } - public uint References() => NativeMethods.vkvg_get_reference_count(handle); - - public string FontFace - { - set { NativeMethods.vkvg_select_font_face(handle, value); } - } - public Matrix Matrix - { - get - { - Matrix m; - NativeMethods.vkvg_get_matrix(handle, out m); - return m; - } - set - { - NativeMethods.vkvg_set_matrix(handle, ref value); - } - } - - } - public Rectangle StrokeExtents () => default; - public float[] Dashes - { - set - { - if (value == null) - NativeMethods.vkvg_set_dash(handle, null, 0, 0); - else - NativeMethods.vkvg_set_dash(handle, value, (uint)value.Length, 0); - } - } - - - public void PushGroup () { - - } - public void PopGroupToSource () { - - } - - public void SelectFontFace(string family, FontSlant slant, FontWeight weight) - { - throw new NotImplementedException(); - } -*/ - //public void MoveTo(float x, float y) => NativeMethods.vkvg_move_to(handle, x, y); - public void MoveTo(double x, double y) => NativeMethods.vkvg_move_to(handle, (float)x, (float)y); - public void MoveTo(Point p) => NativeMethods.vkvg_move_to(handle, p.X, p.Y); - public void MoveTo(PointD p) => NativeMethods.vkvg_move_to(handle, (float)p.X, (float)p.Y); - //public void RelMoveTo(float x, float y) => NativeMethods.vkvg_rel_move_to(handle, x, y); - //public void LineTo(float x, float y) => NativeMethods.vkvg_line_to(handle, x, y); - public void LineTo(Point p) => NativeMethods.vkvg_line_to(handle, p.X, p.Y); - public void LineTo(PointD p) => NativeMethods.vkvg_line_to(handle, (float)p.X, (float)p.Y); - public void LineTo(double x, double y) => NativeMethods.vkvg_line_to(handle, (float)x, (float)y); - //public void RelLineTo(float x, float y) => NativeMethods.vkvg_rel_line_to(handle, x, y); - /*public void CurveTo(float x1, float y1, float x2, float y2, float x3, float y3) - => NativeMethods.vkvg_curve_to(handle, x1, y1, x2, y2, x3, y3);*/ - public void CurveTo(double x1, double y1, double x2, double y2, double x3, double y3) - => NativeMethods.vkvg_curve_to (handle, (float)x1, (float)y1, (float)x2, (float)y2, (float)x3, (float)y3); - public void RelMoveTo(double x, double y) => NativeMethods.vkvg_rel_move_to(handle, (float)x, (float)y); - public void RelLineTo(double x, double y) => NativeMethods.vkvg_rel_line_to(handle, (float)x, (float)y); - public void RelCurveTo(double x1, double y1, double x2, double y2, double x3, double y3) - => NativeMethods.vkvg_rel_curve_to(handle, (float)x1, (float)y1, (float)x2, (float)y2, (float)x3, (float)y3); - //public void RelCurveTo(float x1, float y1, float x2, float y2, float x3, float y3) - // => NativeMethods.vkvg_rel_curve_to(handle, x1, y1, x2, y2, x3, y3); - public void Rectangle(double x, double y, double width, double height) - => NativeMethods.vkvg_rectangle (handle, (float)x, (float)y, (float)width, (float)height); - public void Rectangle(Rectangle r) - => NativeMethods.vkvg_rectangle (handle, (float)r.X, (float)r.Y, (float)r.Width, (float)r.Height); - - - public void SetSource(IPattern pat) { - if (pat is Pattern p) - NativeMethods.vkvg_set_source (handle, p.handle); - } - public void SetSource (Color color) - { - NativeMethods.vkvg_set_source_rgba (handle, - (float)(color.R / 255.0), (float)(color.G / 255.0), (float)(color.B / 255.0), (float)(color.A / 255.0)); - } - public void SetSource(ISurface surf, double x = 0, double y = 0) - => NativeMethods.vkvg_set_source_surface(handle, (surf as Surface).handle, (float)x, (float)y); - public void SetSource(double r, double g, double b, double a = 1.0) - => NativeMethods.vkvg_set_source_rgba(handle, (float)r, (float)g, (float)b, (float)a); - public void RenderSvg(ISvgHandle nsvgImage, string subId = null) - => nsvgImage.Render (this, subId); - Matrix savedMat = Matrix.Identity; - public void SaveTransformations() => NativeMethods.vkvg_get_matrix (handle, out savedMat); - public void RestoreTransformations() => NativeMethods.vkvg_set_matrix (handle, ref savedMat); - - - public void Scale(double sx, double sy) => NativeMethods.vkvg_scale(handle, (float)sx, (float)sy); - public void Translate(double dx, double dy) => NativeMethods.vkvg_translate(handle, (float)dx, (float)dy); - public void Translate(PointD p) => NativeMethods.vkvg_translate(handle, (float)p.X, (float)p.Y); - public void Rotate(double alpha) => NativeMethods.vkvg_rotate(handle, (float)alpha); - - public void Fill() => NativeMethods.vkvg_fill(handle); - public void FillPreserve() => NativeMethods.vkvg_fill_preserve(handle); - public void Stroke() => NativeMethods.vkvg_stroke(handle); - public void StrokePreserve() => NativeMethods.vkvg_stroke_preserve(handle); - public Rectangle StrokeExtents() - { - throw new NotImplementedException(); - } - public void PopGroupToSource() - { - throw new NotImplementedException(); - } - public void PushGroup() - { - throw new NotImplementedException(); - } - - - - public void SelectFontFace(string family, FontSlant slant, FontWeight weight) - { - NativeMethods.vkvg_select_font_face (handle, family); - } - - internal static byte[] TerminateUtf8(string s) - { - // compute the byte count including the trailing \0 - var byteCount = Encoding.UTF8.GetMaxByteCount(s.Length + 1); - var bytes = new byte[byteCount]; - Encoding.UTF8.GetBytes(s, 0, s.Length, bytes, 0); - return bytes; - } - public void SetDash (double [] dashes, double offset = 0) { - if (dashes == null) - NativeMethods.vkvg_set_dash(handle, null, 0, 0); - else { - float[] floats = dashes.Cast ().ToArray (); - NativeMethods.vkvg_set_dash(handle, floats, (uint)dashes.Length, (float)offset); - } - } - - public Drawing2D.TextExtents TextExtents (ReadOnlySpan s, int tabSize = 4) { - TextExtents (s, tabSize, out Drawing2D.TextExtents e); - return e; - } - public void TextExtents (ReadOnlySpan s, int tabSize, out Drawing2D.TextExtents extents) { - if (s.Length == 0) { - extents = default; - return; - } - int size = s.Length * 4 + 1; - Span bytes = size > 512 ? new byte[size] : stackalloc byte[size]; - int encodedBytes = s.ToUtf8 (bytes, tabSize); - bytes[encodedBytes] = 0; - TextExtents (bytes.Slice (0, encodedBytes + 1), out extents); - } - public void TextExtents (Span bytes, out Drawing2D.TextExtents extents) { - NativeMethods.vkvg_text_extents (handle, ref bytes.GetPinnableReference (), out TextExtents e); - extents = new Drawing2D.TextExtents (e.XBearing, e.YBearing, e.Width, e.Height, e.XAdvance, e.YAdvance); - } - public void ShowText (string text) => ShowText (text.AsSpan()); - public void ShowText (ReadOnlySpan s, int tabSize = 4) { - int size = s.Length * 4 + 1; - Span bytes = size > 512 ? new byte[size] : stackalloc byte[size]; - int encodedBytes = s.ToUtf8 (bytes, tabSize); - bytes[encodedBytes] = 0; - ShowText (bytes.Slice (0, encodedBytes + 1)); - } - public void ShowText (Span bytes) { - NativeMethods.vkvg_show_text (handle, ref bytes.GetPinnableReference()); - } - - public void ShowText(TextRun textRun) - => NativeMethods.vkvg_show_text_run(handle, textRun.Handle); - - - - - #region IDisposable implementation - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - protected virtual void Dispose(bool disposing) - { - if (!disposing || handle == IntPtr.Zero) - return; - - NativeMethods.vkvg_destroy(handle); - handle = IntPtr.Zero; - } - #endregion - } -} - diff --git a/Backends/VkvgBackend/src/NativeMethods.cs b/Backends/VkvgBackend/src/NativeMethods.cs deleted file mode 100644 index 7b434b5d..00000000 --- a/Backends/VkvgBackend/src/NativeMethods.cs +++ /dev/null @@ -1,282 +0,0 @@ -// Copyright (c) 2018-2020 Jean-Philippe Bruyère -// -// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT) - -using System; -using System.Runtime.InteropServices; -using Drawing2D; - -namespace Crow.VkvgBackend -{ - internal static class NativeMethods - { - const string libvkvg = "vkvg"; - - #region Device - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_device_create(SampleCount samples, bool deferredResolve); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_device_create_from_vk(IntPtr instance, IntPtr phy, IntPtr dev, uint qFamIdx, uint qIndex); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_device_create_from_vk_multisample(IntPtr inst, IntPtr phy, IntPtr vkdev, uint qFamIdx, uint qIndex, SampleCount samples, bool deferredResolve); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_device_destroy(IntPtr device); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_device_reference(IntPtr dev); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern uint vkvg_device_get_reference_count(IntPtr dev); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_device_set_dpy(IntPtr dev, int hdpy, int vdpy); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_device_get_dpy(IntPtr dev, out int hdpy, out int vdpy); - #endregion - - #region Context - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_create(IntPtr surface); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_destroy(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_flush(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_new_path(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_new_sub_path(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_close_path(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_line_to(IntPtr ctx, float x, float y); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_rel_line_to(IntPtr ctx, float x, float y); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_move_to(IntPtr ctx, float x, float y); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_rel_move_to(IntPtr ctx, float x, float y); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_arc(IntPtr ctx, float xc, float yc, float radius, float a1, float a2); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_arc_negative(IntPtr ctx, float xc, float yc, float radius, float a1, float a2); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_curve_to(IntPtr ctx, float x1, float y1, float x2, float y2, float x3, float y3); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_rel_curve_to(IntPtr ctx, float x1, float y1, float x2, float y2, float x3, float y3); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_rectangle(IntPtr ctx, float x, float y, float width, float height); - - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_scale(IntPtr ctx, float sx, float sy); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_translate(IntPtr ctx, float dx, float dy); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_rotate(IntPtr ctx, float alpha); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_transform(IntPtr ctx, ref Matrix matrix); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_set_matrix(IntPtr ctx, ref Matrix matrix); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_get_matrix(IntPtr ctx, out Matrix matrix); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_identity_matrix(IntPtr ctx); - - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_stroke(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_stroke_preserve(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_clip(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_clip_preserve(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_reset_clip(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_fill(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_fill_preserve(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_paint(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_set_source_rgba(IntPtr ctx, float r, float g, float b, float a); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_set_line_width(IntPtr ctx, float width); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_set_line_cap(IntPtr ctx, LineCap cap); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_set_line_join(IntPtr ctx, LineJoin join); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_set_operator(IntPtr ctx, Operator op); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern FillRule vkvg_get_fill_rule(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_set_fill_rule(IntPtr ctx, FillRule fr); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern Operator vkvg_get_operator(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_set_source_surface(IntPtr ctx, IntPtr surf, float x, float y); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_set_source(IntPtr ctx, IntPtr pattern); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_font_extents(IntPtr ctx, out FontExtents extents); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_text_extents(IntPtr ctx, byte[] utf8, out TextExtents extents); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_text_extents(IntPtr cr, ref byte utf8, out TextExtents extents); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_select_font_face(IntPtr ctx, string name); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_set_font_size(IntPtr ctx, uint size); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_show_text(IntPtr ctx, byte [] utf8); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_show_text(IntPtr cr, ref byte utf8); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_save(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_restore(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_clear(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern float vkvg_get_line_width(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern LineCap vkvg_get_line_cap(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern LineJoin vkvg_get_line_join(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_get_source(IntPtr ctx); - - [DllImport (libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_set_dash (IntPtr ctx, float[] dashes, uint dashCount, float offset); - [DllImport (libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_path_extents (IntPtr ctx, out float x1, out float y1, out float x2, out float y2); - - //void vkvg_set_dash (VkvgContext ctx, const float* dashes, uint32_t num_dashes, float offset); - //void vkvg_get_dash (VkvgContext ctx, const float* dashes, uint32_t* num_dashes, float* offset - - [DllImport (libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_reference(IntPtr ctx); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern uint vkvg_get_reference_count(IntPtr ctx); - #endregion - - #region TextRun - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_text_run_create(IntPtr ctx, byte[] utf8); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_text_run_destroy(IntPtr textRun); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_show_text_run(IntPtr ctx, IntPtr textRun); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_text_run_get_extents(IntPtr textRun, out TextExtents extents); - #endregion - - #region Pattern - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_pattern_create(); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_pattern_reference(IntPtr pat); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern uint vkvg_pattern_get_reference_count(IntPtr pat); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_pattern_create_rgba(float r, float g, float b, float a); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_pattern_create_rgb(float r, float g, float b); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_pattern_create_for_surface(IntPtr surf); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_pattern_create_linear(float x0, float y0, float x1, float y1); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_pattern_create_radial(float cx0, float cy0, float radius0, - float cx1, float cy1, float radius1); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_pattern_destroy(IntPtr pat); - - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_pattern_add_color_stop(IntPtr pat, float offset, float r, float g, float b, float a); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_pattern_set_extend(IntPtr pat, Extend extend); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_pattern_set_filter(IntPtr pat, Filter filter); - - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern Extend vkvg_pattern_get_extend(IntPtr pat); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern Filter vkvg_pattern_get_filter(IntPtr pat); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern PatternType vkvg_pattern_get_type(IntPtr pat); - #endregion - - #region Matrices - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_matrix_init_identity(out Matrix matrix); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_matrix_init(out Matrix matrix, - float xx, float yx, - float xy, float yy, - float x0, float y0); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_matrix_init_translate(out Matrix matrix, float tx, float ty); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_matrix_init_scale(out Matrix matrix, float sx, float sy); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_matrix_init_rotate(out Matrix matrix, float radians); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_matrix_translate(ref Matrix matrix, float tx, float ty); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_matrix_scale(ref Matrix matrix, float sx, float sy); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_matrix_rotate(ref Matrix matrix, float radians); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_matrix_multiply(out Matrix result, ref Matrix a, ref Matrix b); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_matrix_transform_distance(ref Matrix matrix, ref float dx, ref float dy); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_matrix_transform_point(ref Matrix matrix, ref float x, ref float y); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_matrix_invert(ref Matrix matrix); - #endregion - - #region Surface - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_surface_create(IntPtr device, uint width, uint height); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_surface_create_from_image(IntPtr dev, string filePath); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_surface_create_from_svg(IntPtr dev, string filePath); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_surface_create_from_svg_fragment(IntPtr dev, byte[] filePath); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_surface_create_from_bitmap(IntPtr dev, ref byte data, uint width, uint height); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_surface_destroy(IntPtr surf); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_surface_get_vk_image(IntPtr surf); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern int vkvg_surface_get_width(IntPtr surf); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern int vkvg_surface_get_height(IntPtr surf); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_surface_clear(IntPtr surf); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr vkvg_surface_reference(IntPtr surf); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern uint vkvg_surface_get_reference_count(IntPtr surf); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_surface_write_to_png(IntPtr surf, [MarshalAs(UnmanagedType.LPStr)]string path); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_surface_write_to_memory(IntPtr surf, IntPtr pBitmap); - #endregion - - #region NSVG - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr nsvg_load_file(IntPtr dev, string filePath); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr nsvg_load(IntPtr dev, ref byte fragment); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void nsvg_destroy(IntPtr nsvgImage); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void nsvg_get_size(IntPtr nsvgImage, out int width, out int height); - [DllImport(libvkvg, CallingConvention = CallingConvention.Cdecl)] - internal static extern void vkvg_render_svg(IntPtr ctx, IntPtr nsvgImage, string subId); - #endregion - } -} - diff --git a/Backends/VkvgBackend/src/Pattern.cs b/Backends/VkvgBackend/src/Pattern.cs deleted file mode 100644 index d324b2af..00000000 --- a/Backends/VkvgBackend/src/Pattern.cs +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) 2018-2021 Jean-Philippe Bruyère -// -// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT) - -using System; -using Drawing2D; - -namespace Crow.VkvgBackend -{ - public class Pattern : IPattern - { - internal IntPtr handle = IntPtr.Zero; - - #region CTORS & DTOR - protected Pattern(IntPtr handle) - { - this.handle = handle; - } - public Pattern(float r, float g, float b) - { - handle = NativeMethods.vkvg_pattern_create_rgb(r, g, b); - } - public Pattern(float r, float g, float b, float a) - { - handle = NativeMethods.vkvg_pattern_create_rgba(r, g, b, a); - } - public Pattern(Surface surf) - { - handle = NativeMethods.vkvg_pattern_create_for_surface(surf.handle); - } - - ~Pattern() - { - Dispose(false); - } - #endregion - - public void AddReference() - { - NativeMethods.vkvg_pattern_reference(handle); - } - public uint References() => NativeMethods.vkvg_pattern_get_reference_count(handle); - - public Extend Extend - { - get => NativeMethods.vkvg_pattern_get_extend(handle); - set { NativeMethods.vkvg_pattern_set_extend(handle, value); } - } - public Filter Filter - { - get => NativeMethods.vkvg_pattern_get_filter(handle); - set { NativeMethods.vkvg_pattern_set_filter(handle, value); } - } - - #region IDisposable implementation - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - if (!disposing || handle == IntPtr.Zero) - return; - - NativeMethods.vkvg_pattern_destroy(handle); - handle = IntPtr.Zero; - } - #endregion - } -} \ No newline at end of file diff --git a/Backends/VkvgBackend/src/SvgHandle.cs b/Backends/VkvgBackend/src/SvgHandle.cs deleted file mode 100644 index 0a6f3007..00000000 --- a/Backends/VkvgBackend/src/SvgHandle.cs +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (c) 2021 Jean-Philippe Bruyère -// -// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT) - -using System; -using Drawing2D; - -namespace Crow.VkvgBackend -{ - public sealed class SvgHandle : ISvgHandle { - - internal IntPtr handle; - - #region CTOR - public SvgHandle (Device dev, Span bytes) - { - /*int size = svgFragment.Length * 4 + 1; - Span bytes = size > 512 ? new byte[size] : stackalloc byte[size]; - int encodedBytes = Crow.Text.Encoding.ToUtf8 (svgFragment, bytes); - bytes[encodedBytes] = 0;*/ - handle = NativeMethods.nsvg_load (dev.Handle, ref bytes.GetPinnableReference()); - } - public SvgHandle (Device dev, string file_name) - { - handle = NativeMethods.nsvg_load_file (dev.Handle, file_name); - } - #endregion - - public void Render(IContext cr) {} - //NativeMethods.vkvg_render_svg((cr as Context).handle, handle, null); - public void Render (IContext cr, string id) {} - //NativeMethods.vkvg_render_svg((cr as Context).handle, handle, id); - public Size Dimensions { - get { - NativeMethods.nsvg_get_size (handle, out int w, out int h); - return new Size (w, h); - } - } - public void Dispose() { - NativeMethods.nsvg_destroy (handle); - } - - } -} -- 2.47.3