Flutter Engine
 
Loading...
Searching...
No Matches
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:
impeller::StrokeSegmentsGeometry impeller::Geometry impeller::StrokeDashedLineGeometry impeller::StrokeDiffRoundRectGeometry impeller::StrokeEllipseGeometry impeller::StrokePathGeometry impeller::StrokeRoundRectGeometry impeller::StrokeRoundSuperellipseGeometry

Protected Member Functions

 StrokePathSourceGeometry (const StrokeParameters &parameters)
 
virtual const PathSourceGetSource () const =0
 
std::optional< RectGetCoverage (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< RectGetStrokeCoverage (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.
 
virtual bool IsAxisAlignedRect () const
 
virtual bool CanApplyMaskFilter () const
 
- Static Public Member Functions inherited from impeller::Geometry
static std::unique_ptr< GeometryMakeFillPath (const flutter::DlPath &path, std::optional< Rect > inner_rect=std::nullopt)
 
static std::unique_ptr< GeometryMakeStrokePath (const flutter::DlPath &path, const StrokeParameters &stroke={})
 
static std::unique_ptr< GeometryMakeCover ()
 
static std::unique_ptr< GeometryMakeRect (const Rect &rect)
 
static std::unique_ptr< GeometryMakeOval (const Rect &rect)
 
static std::unique_ptr< GeometryMakeLine (const Point &p0, const Point &p1, const StrokeParameters &stroke)
 
static std::unique_ptr< GeometryMakeCircle (const Point &center, Scalar radius)
 
static std::unique_ptr< GeometryMakeStrokedCircle (const Point &center, Scalar radius, Scalar stroke_width)
 
static std::unique_ptr< GeometryMakeFilledArc (const Rect &oval_bounds, Degrees start, Degrees sweep, bool include_center)
 
static std::unique_ptr< GeometryMakeStrokedArc (const Rect &oval_bounds, Degrees start, Degrees sweep, const StrokeParameters &stroke)
 
static std::unique_ptr< GeometryMakeRoundRect (const Rect &rect, const Size &radii)
 
static std::unique_ptr< GeometryMakeRoundSuperellipse (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.
 
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) {}
StrokeSegmentsGeometry(const StrokeParameters &parameters)

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 {
852}
static void PathToStrokedSegments(const PathSource &source, SegmentReceiver &receiver)
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}
std::optional< Rect > GetStrokeCoverage(const Matrix &transform, const Rect &segment_bounds) const

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

◆ GetSource()

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

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