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);
74 bool isClockwiseDirection);
81 bool isClockwiseDirection);
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 bool left(const SkPoint &p0, const SkPoint &p1)
static bool right(const SkPoint &p0, const SkPoint &p1)
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
#define FML_FRIEND_MAKE_REF_COUNTED(T)