| Flutter Impeller |

Protected Member Functions | List of all members
impeller::StrokePathSourceGeometry Class Referenceabstract

An abstract Geometry base class that produces fillable vertices representing the stroked outline from any |PathSource| provided by the subclass. More...

`#include <stroke_path_geometry.h>`

Inheritance diagram for impeller::StrokePathSourceGeometry:

## Protected Member Functions
| StrokePathSourceGeometry (const StrokeParameters &parameters)
virtual const PathSource & | GetSource () const =0
std::optional< Rect > | GetCoverage (const Matrix &transform) const override
void | Dispatch (PathAndArcSegmentReceiver &receiver, Tessellator &tessellator, Scalar scale) const override
Protected Member Functions inherited from impeller::StrokeSegmentsGeometry
| StrokeSegmentsGeometry (const StrokeParameters &parameters)
std::optional< Rect > | GetStrokeCoverage (const Matrix &transform, const Rect &segment_bounds) const

## Additional Inherited Members
Public Member Functions inherited from impeller::StrokeSegmentsGeometry
| ~StrokeSegmentsGeometry () override
Scalar | GetStrokeWidth () const
Scalar | GetMiterLimit () const
Cap | GetStrokeCap () const
Join | GetStrokeJoin () const
Scalar | ComputeAlphaCoverage (const Matrix &transform) const override
Public Member Functions inherited from impeller::Geometry
virtual | ~Geometry ()
virtual bool | CoversArea (const Matrix &transform, const Rect &rect) const
| Determines if this geometry, transformed by the given `transform`, will completely cover all surface area of the given `rect`. More...
virtual bool | IsAxisAlignedRect () const
virtual bool | CanApplyMaskFilter () const
Static Public Member Functions inherited from impeller::Geometry
static std::unique_ptr< Geometry > | MakeFillPath (const flutter::DlPath &path, std::optional< Rect > inner_rect=std::nullopt)
static std::unique_ptr< Geometry > | MakeStrokePath (const flutter::DlPath &path, const StrokeParameters &stroke={})
static std::unique_ptr< Geometry > | MakeCover ()
static std::unique_ptr< Geometry > | MakeRect (const Rect &rect)
static std::unique_ptr< Geometry > | MakeOval (const Rect &rect)
static std::unique_ptr< Geometry > | MakeLine (const Point &p0, const Point &p1, const StrokeParameters &stroke)
static std::unique_ptr< Geometry > | MakeCircle (const Point &center, Scalar radius)
static std::unique_ptr< Geometry > | MakeStrokedCircle (const Point &center, Scalar radius, Scalar stroke_width)
static std::unique_ptr< Geometry > | MakeFilledArc (const Rect &oval_bounds, Degrees start, Degrees sweep, bool include_center)
static std::unique_ptr< Geometry > | MakeStrokedArc (const Rect &oval_bounds, Degrees start, Degrees sweep, const StrokeParameters &stroke)
static std::unique_ptr< Geometry > | MakeRoundRect (const Rect &rect, const Size &radii)
static std::unique_ptr< Geometry > | MakeRoundSuperellipse (const Rect &rect, Scalar corner_radius)
static Scalar | ComputeStrokeAlphaCoverage (const Matrix &entity, Scalar stroke_width)
| Compute an alpha value to simulate lower coverage of fractional pixel strokes. More...
static GeometryResult | ComputePositionGeometry (const ContentContext &renderer, const Tessellator::VertexGenerator &generator, const Entity &entity, RenderPass &pass)

## Detailed Description

An abstract Geometry base class that produces fillable vertices representing the stroked outline from any |PathSource| provided by the subclass.

Definition at line 94 of file stroke_path_geometry.h.

## Constructor & Destructor Documentation

## ◆ StrokePathSourceGeometry()

impeller::StrokePathSourceGeometry::StrokePathSourceGeometry | ( | const StrokeParameters & | parameters | ) |
| explicitprotected

Definition at line 839 of file stroke_path_geometry.cc.

841 : StrokeSegmentsGeometry(parameters) {}
impeller::StrokeSegmentsGeometry::StrokeSegmentsGeometry
StrokeSegmentsGeometry(const StrokeParameters &parameters)
Definition: stroke_path_geometry.cc:714

## Member Function Documentation

## ◆ Dispatch()

void impeller::StrokePathSourceGeometry::Dispatch | ( | PathAndArcSegmentReceiver & | receiver,
|  | Tessellator & | tessellator,
|  | Scalar | scale
| ) |  | const
| overrideprotectedvirtual

Dispatch the path segments to the StrokePathSegmentReceiver for the provided transform scale.

Implements impeller::StrokeSegmentsGeometry.

Definition at line 848 of file stroke_path_geometry.cc.

850 {
851 PathTessellator::PathToStrokedSegments(GetSource(), receiver);
852 }
impeller::PathTessellator::PathToStrokedSegments
static void PathToStrokedSegments(const PathSource &source, SegmentReceiver &receiver)
Definition: path_tessellator.cc:291
impeller::StrokePathSourceGeometry::GetSource
virtual const PathSource & GetSource() const =0

References GetSource(), and impeller::PathTessellator::PathToStrokedSegments().

## ◆ GetCoverage()

std::optional< Rect > impeller::StrokePathSourceGeometry::GetCoverage | ( | const Matrix & | transform | ) | const
| overrideprotectedvirtual

Implements impeller::Geometry.

Definition at line 843 of file stroke_path_geometry.cc.

844 {
845 return GetStrokeCoverage(transform, GetSource().GetBounds());
846 }
impeller::StrokeSegmentsGeometry::GetStrokeCoverage
std::optional< Rect > GetStrokeCoverage(const Matrix &transform, const Rect &segment_bounds) const
Definition: stroke_path_geometry.cc:815
transform
Matrix transform
Definition: gaussian_blur_filter_contents.cc:312

References GetSource(), impeller::StrokeSegmentsGeometry::GetStrokeCoverage(), and transform.

## ◆ GetSource()

virtual const PathSource& impeller::StrokePathSourceGeometry::GetSource | ( |  | ) | const
| protectedpure virtual

The PathSource object that will be iterated to produce the raw vertices to be stroked.

Implemented in impeller::StrokeDashedLineGeometry, impeller::StrokeDiffRoundRectGeometry, impeller::StrokePathGeometry, impeller::StrokeRoundSuperellipseGeometry, impeller::StrokeRoundRectGeometry, and impeller::StrokeEllipseGeometry.

Referenced by Dispatch(), and GetCoverage().

The documentation for this class was generated from the following files:

- impeller/entity/geometry/stroke_path_geometry.h
- impeller/entity/geometry/stroke_path_geometry.cc