Browse Source

Added DrawOval to drawing backend and improved x,y parameter naming of DrawCircle methods

CPKreuz 1 year ago
parent
commit
c481e2a915

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

@@ -22,7 +22,8 @@ namespace PixiEditor.DrawingApi.Core.Bridge.Operations
         public void DrawPoint(IntPtr objPtr, VecI pos, 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 DrawCircle(IntPtr objPtr, int x, int y, int radius, Paint paint);
+        public void DrawCircle(IntPtr objPtr, int cx, int cy, int radius, Paint paint);
+        public void DrawOval(IntPtr objPtr, int cx, int cy, int width, int height, Paint paint);
         public void ClipPath(IntPtr objPtr, VectorPath clipPath, ClipOperation clipOperation, bool antialias);
         public void ClipRect(IntPtr objPtr, RectD rect, ClipOperation clipOperation);
         public void Clear(IntPtr objPtr);

+ 9 - 3
src/PixiEditor.DrawingApi.Core/Surface/Canvas.cs

@@ -120,10 +120,16 @@ namespace PixiEditor.DrawingApi.Core.Surface
             Changed?.Invoke(new RectD(x, y, width, height));
         }
 
-        public void DrawCircle(int x, int y, int radius, Paint paint)
+        public void DrawCircle(int centerX, int centerY, 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));
+            DrawingBackendApi.Current.CanvasImplementation.DrawCircle(ObjectPointer, centerX, centerY, radius, paint);
+            Changed?.Invoke(new RectD(centerX - radius, centerY - radius, radius * 2, radius * 2));
+        }
+
+        public void DrawOval(int centerX, int centerY, int radiusX, int radiusY, Paint paint)
+        {
+            DrawingBackendApi.Current.CanvasImplementation.DrawOval(ObjectPointer, centerX, centerY, radiusX, radiusY, paint);
+            Changed?.Invoke(new RectD(centerX - radiusX, centerY - radiusY, radiusX * 2, radiusY * 2));
         }
 
         public void DrawRect(RectI rect, Paint paint) => DrawRect(rect.X, rect.Y, rect.Width, rect.Height, paint);

+ 8 - 2
src/PixiEditor.DrawingApi.Skia/Implementations/SkiaCanvasImplementation.cs

@@ -112,10 +112,16 @@ namespace PixiEditor.DrawingApi.Skia.Implementations
             canvas.DrawRect(x, y, width, height, skPaint);
         }
 
-        public void DrawCircle(IntPtr objPtr, int x, int y, int radius, Paint paint)
+        public void DrawCircle(IntPtr objPtr, int cx, int cy, int radius, Paint paint)
         {
             var canvas = ManagedInstances[objPtr];
-            canvas.DrawCircle(x, y, radius, _paintImpl[paint.ObjectPointer]);
+            canvas.DrawCircle(cx, cy, radius, _paintImpl[paint.ObjectPointer]);
+        }
+
+        public void DrawOval(IntPtr objPtr, int cx, int cy, int width, int height, Paint paint)
+        {
+            var canvas = ManagedInstances[objPtr];
+            canvas.DrawOval(cx, cy, width, height, _paintImpl[paint.ObjectPointer]);
         }
 
         public void ClipPath(IntPtr objPtr, VectorPath clipPath, ClipOperation clipOperation, bool antialias)