 |
Flutter Impeller
|
|
Go to the documentation of this file.
5 #ifndef FLUTTER_IMPELLER_ENTITY_GEOMETRY_GEOMETRY_H_
6 #define FLUTTER_IMPELLER_ENTITY_GEOMETRY_GEOMETRY_H_
12 #include "impeller/entity/texture_fill.vert.h"
44 VertexBufferBuilder<TextureFillVertexShader::PerVertexData>
46 VertexBufferBuilder<SolidFillVertexShader::PerVertexData>& input,
48 Size texture_coverage,
49 Matrix effect_transform);
52 Rect texture_coverage,
53 Matrix effect_transform,
54 const ContentContext& renderer,
62 std::optional<Rect> inner_rect = std::nullopt);
71 static std::shared_ptr<Geometry>
MakeCover();
73 static std::shared_ptr<Geometry>
MakeRect(
const Rect& rect);
75 static std::shared_ptr<Geometry>
MakeOval(
const Rect& rect);
92 static std::shared_ptr<Geometry>
MakePointField(std::vector<Point> points,
132 const Matrix& uv_transform,
139 #endif // FLUTTER_IMPELLER_ENTITY_GEOMETRY_GEOMETRY_H_
static std::shared_ptr< Geometry > MakePointField(std::vector< Point > points, Scalar radius, bool round)
static std::shared_ptr< Geometry > MakeStrokedCircle(const Point ¢er, Scalar radius, Scalar stroke_width)
static std::shared_ptr< Geometry > MakeRoundRect(const Rect &rect, const Size &radii)
virtual std::optional< Rect > GetCoverage(const Matrix &transform) const =0
virtual bool IsAxisAlignedRect() const
virtual bool CoversArea(const Matrix &transform, const Rect &rect) const
Determines if this geometry, transformed by the given transform, will completely cover all surface ar...
VertexBufferBuilder< TextureFillVertexShader::PerVertexData > ComputeUVGeometryCPU(VertexBufferBuilder< SolidFillVertexShader::PerVertexData > &input, Point texture_origin, Size texture_coverage, Matrix effect_transform)
Compute UV geometry for a VBB that contains only position geometry.
static std::shared_ptr< Geometry > MakeStrokePath(Path path, Scalar stroke_width=0.0, Scalar miter_limit=4.0, Cap stroke_cap=Cap::kButt, Join stroke_join=Join::kMiter)
static std::shared_ptr< Geometry > MakeOval(const Rect &rect)
An object which produces a list of vertices as |Point|s that tessellate a previously provided shape a...
PrimitiveType
Decides how backend draws pixels based on input vertices.
virtual GeometryResult GetPositionBuffer(const ContentContext &renderer, const Entity &entity, RenderPass &pass) const =0
Paths are lightweight objects that describe a collection of linear, quadratic, or cubic segments....
virtual GeometryResult GetPositionUVBuffer(Rect texture_coverage, Matrix effect_transform, const ContentContext &renderer, const Entity &entity, RenderPass &pass) const =0
@ kNone
Does not use the index buffer.
static GeometryResult ComputePositionGeometry(const Tessellator::VertexGenerator &generator, const Entity &entity, RenderPass &pass)
virtual GeometryVertexType GetVertexType() const =0
static std::shared_ptr< Geometry > MakeFillPath(Path path, std::optional< Rect > inner_rect=std::nullopt)
Render passes encode render commands directed as one specific render target into an underlying comman...
static std::shared_ptr< Geometry > MakeRect(const Rect &rect)
static const GeometryResult kEmptyResult
static std::shared_ptr< Geometry > MakeCircle(const Point ¢er, Scalar radius)
VertexBuffer vertex_buffer
GeometryResult ComputeUVGeometryForRect(Rect source_rect, Rect texture_coverage, Matrix effect_transform, const ContentContext &renderer, const Entity &entity, RenderPass &pass)
static GeometryResult ComputePositionUVGeometry(const Tessellator::VertexGenerator &generator, const Matrix &uv_transform, const Entity &entity, RenderPass &pass)
A 4x4 matrix using column-major storage.
static std::shared_ptr< Geometry > MakeCover()
static std::shared_ptr< Geometry > MakeLine(const Point &p0, const Point &p1, Scalar width, Cap cap)