16 std::optional<Rect> inner_rect)
17 : path_(path), inner_rect_(inner_rect) {}
23 auto& host_buffer = renderer.GetTransientsBuffer();
26 if (bounding_box.has_value() && bounding_box->IsEmpty()) {
41 auto points = renderer.GetTessellator()->TessellateConvex(
51 .vertex_buffer = vertex_buffer,
60 (bounding_box.has_value() && bounding_box->IsEmpty())) {
80 const Rect& rect)
const {
81 if (!inner_rect_.has_value()) {
84 if (!
transform.IsTranslationScaleOnly()) {
88 return coverage.Contains(rect);
static const int points[]
Matrix GetShaderTransform(const RenderPass &pass) const
Get the vertex shader transform used for drawing this Entity.
const Matrix & GetTransform() const
Get the global transform matrix for this Entity.
std::optional< Rect > GetCoverage(const Matrix &transform) const override
bool CoversArea(const Matrix &transform, const Rect &rect) const override
Determines if this geometry, transformed by the given transform, will completely cover all surface ar...
GeometryResult::Mode GetResultMode() const override
FillPathGeometry(const Path &path, std::optional< Rect > inner_rect=std::nullopt)
GeometryResult GetPositionBuffer(const ContentContext &renderer, const Entity &entity, RenderPass &pass) const override
Paths are lightweight objects that describe a collection of linear, quadratic, or cubic segments....
FillType GetFillType() const
std::optional< Rect > GetTransformedBoundingBox(const Matrix &transform) const
std::optional< Rect > GetBoundingBox() const
Render passes encode render commands directed as one specific render target into an underlying comman...
const Matrix & GetOrthographicTransform() const
#define FML_UNREACHABLE()
@ kNone
Does not use the index buffer.
static SkColor4f transform(SkColor4f c, SkColorSpace *src, SkColorSpace *dst)
@ kNormal
The geometry has no overlapping triangles.
A 4x4 matrix using column-major storage.
Scalar GetMaxBasisLength() const
BufferView index_buffer
The index buffer binding used by the vertex shader stage.