14 : center_(center), radius_(radius), stroke_width_(-1.0f) {
15 FML_DCHECK(radius >= 0);
24 FML_DCHECK(radius >= 0);
33 Scalar half_width = stroke_width_ < 0 ? 0.0
35 transform, stroke_width_);
37 std::shared_ptr<Tessellator> tessellator = renderer.
GetTessellator();
42 tessellator->StrokedCircle(transform, center_, radius_, half_width);
48 GeometryResult CircleGeometry::GetPositionUVBuffer(
49 Rect texture_coverage,
50 Matrix effect_transform,
51 const ContentContext& renderer,
53 RenderPass& pass)
const {
54 auto& transform = entity.GetTransform();
56 texture_coverage.GetNormalizingTransform() * effect_transform;
58 Scalar half_width = stroke_width_ < 0 ? 0.0
60 transform, stroke_width_);
61 std::shared_ptr<Tessellator> tessellator = renderer.GetTessellator();
66 tessellator->StrokedCircle(transform, center_, radius_, half_width);
76 std::optional<Rect> CircleGeometry::GetCoverage(
const Matrix& transform)
const {
78 {center_.
x, center_.
y - radius_},
79 {center_.
x + radius_, center_.
y},
80 {center_.
x, center_.
y + radius_},
81 {center_.
x - radius_, center_.
y},
84 for (
int i = 0; i < 4; i++) {
85 corners[i] = transform * corners[i];
91 const Rect& rect)
const {