5#ifndef FLUTTER_LIB_UI_PAINTING_PATH_H_
6#define FLUTTER_LIB_UI_PAINTING_PATH_H_
12#include "third_party/skia/include/core/SkPath.h"
13#include "third_party/skia/include/core/SkPathBuilder.h"
14#include "third_party/skia/include/pathops/SkPathOps.h"
20 DEFINE_WRAPPERTYPEINFO();
26 static void CreateFrom(Dart_Handle path_handle,
const SkPath& src) {
27 auto path = fml::MakeRefCounted<CanvasPath>();
28 path->AssociateWithDartWrapper(path_handle);
34 auto res = fml::MakeRefCounted<CanvasPath>();
35 res->AssociateWithDartWrapper(wrapper);
60 void conicTo(
double x1,
double y1,
double x2,
double y2,
double w);
61 void relativeConicTo(
double x1,
double y1,
double x2,
double y2,
double w);
62 void arcTo(
double left,
75 bool isClockwiseDirection);
82 bool isClockwiseDirection);
83 void addRect(
double left,
double top,
double right,
double bottom);
84 void addOval(
double left,
double top,
double right,
double bottom);
99 Dart_Handle matrix4_handle);
106 Dart_Handle matrix4_handle);
111 void shift(Dart_Handle path_handle,
double dx,
double dy);
113 void transform(Dart_Handle path_handle, Dart_Handle matrix4_handle);
117 void clone(Dart_Handle path_handle);
124 SkPathBuilder sk_path_;
125 mutable std::optional<const DlPath> dl_path_;
128 void resetVolatility();
static void CreateFrom(Dart_Handle path_handle, const SkPath &src)
void moveTo(double x, double y)
tonic::Float32List getBounds()
void shift(Dart_Handle path_handle, double dx, double dy)
static fml::RefPtr< CanvasPath > Create(Dart_Handle wrapper)
const DlPath & path() const
void relativeLineTo(double x, double y)
void clone(Dart_Handle path_handle)
void addRect(double left, double top, double right, double bottom)
void relativeQuadraticBezierTo(double x1, double y1, double x2, double y2)
void relativeArcToPoint(double arcEndDeltaX, double arcEndDeltaY, double radiusX, double radiusY, double xAxisRotation, bool isLargeArc, bool isClockwiseDirection)
void conicTo(double x1, double y1, double x2, double y2, double w)
void addPathWithMatrix(CanvasPath *path, double dx, double dy, Dart_Handle matrix4_handle)
bool contains(double x, double y)
void addRSuperellipse(const RSuperellipse *rse)
void addArc(double left, double top, double right, double bottom, double startAngle, double sweepAngle)
void relativeConicTo(double x1, double y1, double x2, double y2, double w)
void relativeMoveTo(double x, double y)
void lineTo(double x, double y)
void cubicTo(double x1, double y1, double x2, double y2, double x3, double y3)
void quadraticBezierTo(double x1, double y1, double x2, double y2)
bool op(CanvasPath *path1, CanvasPath *path2, int operation)
void arcToPoint(double arcEndX, double arcEndY, double radiusX, double radiusY, double xAxisRotation, bool isLargeArc, bool isClockwiseDirection)
void extendWithPath(CanvasPath *path, double dx, double dy)
void relativeCubicTo(double x1, double y1, double x2, double y2, double x3, double y3)
void addPolygon(const tonic::Float32List &points, bool close)
void addPath(CanvasPath *path, double dx, double dy)
void extendWithPathAndMatrix(CanvasPath *path, double dx, double dy, Dart_Handle matrix4_handle)
void addRRect(const RRect &rrect)
void setFillType(int fill_type)
void addOval(double left, double top, double right, double bottom)
void arcTo(double left, double top, double right, double bottom, double startAngle, double sweepAngle, bool forceMoveTo)
static void ThrowIfUIOperationsProhibited()
#define FML_FRIEND_MAKE_REF_COUNTED(T)
std::vector< Point > points