Flutter Impeller
round_rect_geometry.h
Go to the documentation of this file.
1
// Copyright 2013 The Flutter Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#ifndef FLUTTER_IMPELLER_ENTITY_GEOMETRY_ROUND_RECT_GEOMETRY_H_
6
#define FLUTTER_IMPELLER_ENTITY_GEOMETRY_ROUND_RECT_GEOMETRY_H_
7
8
#include "
impeller/entity/geometry/geometry.h
"
9
10
namespace
impeller
{
11
12
// Geometry class that can generate vertices (with or without texture
13
// coordinates) for filled ellipses. Generating vertices for a stroked
14
// ellipse would require a lot more work since the line width must be
15
// applied perpendicular to the distorted ellipse shape.
16
class
RoundRectGeometry
final :
public
Geometry
{
17
public
:
18
explicit
RoundRectGeometry
(
const
Rect
& bounds,
const
Size
& radii);
19
20
~RoundRectGeometry
()
override
;
21
22
// |Geometry|
23
bool
CoversArea
(
const
Matrix
&
transform
,
const
Rect
& rect)
const override
;
24
25
// |Geometry|
26
bool
IsAxisAlignedRect
()
const override
;
27
28
private
:
29
// |Geometry|
30
GeometryResult
GetPositionBuffer(
const
ContentContext
& renderer,
31
const
Entity
& entity,
32
RenderPass
& pass)
const override
;
33
34
// |Geometry|
35
std::optional<Rect> GetCoverage(
const
Matrix
&
transform
)
const override
;
36
37
const
Rect
bounds_;
38
const
Size
radii_;
39
40
RoundRectGeometry
(
const
RoundRectGeometry
&) =
delete
;
41
42
RoundRectGeometry
& operator=(
const
RoundRectGeometry
&) =
delete
;
43
};
44
45
}
// namespace impeller
46
47
#endif // FLUTTER_IMPELLER_ENTITY_GEOMETRY_ROUND_RECT_GEOMETRY_H_
impeller::RoundRectGeometry::IsAxisAlignedRect
bool IsAxisAlignedRect() const override
Definition:
round_rect_geometry.cc:62
geometry.h
impeller::RoundRectGeometry::CoversArea
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...
Definition:
round_rect_geometry.cc:29
impeller::Entity
Definition:
entity.h:20
impeller::TSize< Scalar >
transform
Matrix transform
Definition:
gaussian_blur_filter_contents.cc:213
impeller::GeometryResult
Definition:
geometry.h:26
impeller::RoundRectGeometry::~RoundRectGeometry
~RoundRectGeometry() override
impeller::RenderPass
Render passes encode render commands directed as one specific render target into an underlying comman...
Definition:
render_pass.h:33
impeller::Geometry
Definition:
geometry.h:55
impeller::RoundRectGeometry
Definition:
round_rect_geometry.h:16
impeller
Definition:
allocation.cc:12
impeller::ContentContext
Definition:
content_context.h:366
impeller::TRect< Scalar >
impeller::Matrix
A 4x4 matrix using column-major storage.
Definition:
matrix.h:37
impeller::RoundRectGeometry::RoundRectGeometry
RoundRectGeometry(const Rect &bounds, const Size &radii)
Definition:
round_rect_geometry.cc:9
impeller
entity
geometry
round_rect_geometry.h
Generated by
1.8.17