5#ifndef FLUTTER_LIB_UI_PAINTING_PATH_H_
6#define FLUTTER_LIB_UI_PAINTING_PATH_H_
8#include "flutter/lib/ui/dart_wrapper.h"
9#include "flutter/lib/ui/painting/rrect.h"
10#include "flutter/lib/ui/ui_dart_state.h"
11#include "flutter/lib/ui/volatile_path_tracker.h"
19 DEFINE_WRAPPERTYPEINFO();
26 auto path = fml::MakeRefCounted<CanvasPath>();
27 path->AssociateWithDartWrapper(path_handle);
28 path->tracked_path_->path =
src;
33 auto res = fml::MakeRefCounted<CanvasPath>();
34 res->AssociateWithDartWrapper(wrapper);
59 void conicTo(
double x1,
double y1,
double x2,
double y2,
double w);
61 void arcTo(
double left,
74 bool isClockwiseDirection);
81 bool isClockwiseDirection);
82 void addRect(
double left,
double top,
double right,
double bottom);
83 void addOval(
double left,
double top,
double right,
double bottom);
122 std::shared_ptr<VolatilePathTracker> path_tracker_;
123 std::shared_ptr<VolatilePathTracker::TrackedPath> tracked_path_;
126 void resetVolatility();
128 SkPath& mutable_path() {
return tracked_path_->path; }
static const int points[]
static void operation(T operation, uint32_t &a, uint32_t b, uint32_t c, uint32_t d, uint32_t x, uint8_t s, uint32_t t)
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)
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 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)
const SkPath & path() const
void extendWithPathAndMatrix(CanvasPath *path, double dx, double dy, Dart_Handle matrix4_handle)
void addRRect(const RRect &rrect)
void setFillType(int fill_type)
void transform(Dart_Handle path_handle, Dart_Handle matrix4_handle)
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()
struct _Dart_Handle * Dart_Handle
skia_private::AutoTArray< sk_sp< SkImageFilter > > filters TypedMatrix matrix TypedMatrix matrix SkScalar dx