flabbet 1 year ago
parent
commit
fba8508e19

+ 1 - 0
src/PixiEditor.DrawingApi.Core/Bridge/Operations/ICanvasImplementation.cs

@@ -22,6 +22,7 @@ namespace PixiEditor.DrawingApi.Core.Bridge.Operations
         public void DrawPoint(IntPtr objPtr, VecI pos, Paint paint);
         public void DrawPoint(IntPtr objPtr, VecI pos, Paint paint);
         public void DrawPoints(IntPtr objPtr, PointMode pointMode, Point[] points, Paint paint);
         public void DrawPoints(IntPtr objPtr, PointMode pointMode, Point[] points, Paint paint);
         public void DrawRect(IntPtr objPtr, int x, int y, int width, int height, Paint paint);
         public void DrawRect(IntPtr objPtr, int x, int y, int width, int height, Paint paint);
+        public void DrawCircle(IntPtr objPtr, int x, int y, int radius, Paint paint);
         public void ClipPath(IntPtr objPtr, VectorPath clipPath, ClipOperation clipOperation, bool antialias);
         public void ClipPath(IntPtr objPtr, VectorPath clipPath, ClipOperation clipOperation, bool antialias);
         public void ClipRect(IntPtr objPtr, RectD rect, ClipOperation clipOperation);
         public void ClipRect(IntPtr objPtr, RectD rect, ClipOperation clipOperation);
         public void Clear(IntPtr objPtr);
         public void Clear(IntPtr objPtr);

+ 6 - 0
src/PixiEditor.DrawingApi.Core/Surface/Canvas.cs

@@ -112,6 +112,12 @@ namespace PixiEditor.DrawingApi.Core.Surface
             Changed?.Invoke(new RectD(x, y, width, height));
             Changed?.Invoke(new RectD(x, y, width, height));
         }
         }
         
         
+        public void DrawCircle(int x, int y, int radius, Paint paint)
+        {
+            DrawingBackendApi.Current.CanvasImplementation.DrawCircle(ObjectPointer, x, y, radius, paint);
+            Changed?.Invoke(new RectD(x - radius, y - radius, radius * 2, radius * 2));
+        }
+        
         public void DrawRect(RectI rect, Paint paint) => DrawRect(rect.X, rect.Y, rect.Width, rect.Height, paint);
         public void DrawRect(RectI rect, Paint paint) => DrawRect(rect.X, rect.Y, rect.Width, rect.Height, paint);
 
 
         public void ClipPath(VectorPath clipPath) => ClipPath(clipPath, ClipOperation.Intersect);
         public void ClipPath(VectorPath clipPath) => ClipPath(clipPath, ClipOperation.Intersect);

+ 5 - 0
src/PixiEditor.DrawingApi.Skia/Implementations/SkiaCanvasImplementation.cs

@@ -104,6 +104,11 @@ namespace PixiEditor.DrawingApi.Skia.Implementations
             ManagedInstances[objPtr].DrawRect(x, y, width, height, _paintImpl[paint.ObjectPointer]);
             ManagedInstances[objPtr].DrawRect(x, y, width, height, _paintImpl[paint.ObjectPointer]);
         }
         }
 
 
+        public void DrawCircle(IntPtr objPtr, int x, int y, int radius, Paint paint)
+        {
+            ManagedInstances[objPtr].DrawCircle(x, y, radius, _paintImpl[paint.ObjectPointer]);
+        }
+
         public void ClipPath(IntPtr objPtr, VectorPath clipPath, ClipOperation clipOperation, bool antialias)
         public void ClipPath(IntPtr objPtr, VectorPath clipPath, ClipOperation clipOperation, bool antialias)
         {
         {
             SKCanvas canvas = ManagedInstances[objPtr];
             SKCanvas canvas = ManagedInstances[objPtr];