4
4
5
5
#include " impeller/aiks/canvas_pass.h"
6
6
7
+ #include " impeller/entity/content_renderer.h"
8
+
7
9
namespace impeller {
8
10
9
11
CanvasPass::CanvasPass () = default ;
10
12
11
13
CanvasPass::~CanvasPass () = default ;
12
14
13
15
void CanvasPass::PushEntity (Entity entity) {
14
- ops_.emplace_back (std::move (entity));
15
- }
16
-
17
- const std::vector<Entity>& CanvasPass::GetPassEntities () const {
18
- return ops_;
16
+ entities_.emplace_back (std::move (entity));
19
17
}
20
18
21
- void CanvasPass::SetPostProcessingEntity (Entity entity) {
22
- post_processing_entity_ = std::move (entity);
23
- }
24
-
25
- const Entity& CanvasPass::GetPostProcessingEntity () const {
26
- return post_processing_entity_;
19
+ const std::vector<Entity>& CanvasPass::GetEntities () const {
20
+ return entities_;
27
21
}
28
22
29
23
Rect CanvasPass::GetCoverageRect () const {
30
24
std::optional<Point > min, max;
31
- for (const auto & entity : ops_ ) {
25
+ for (const auto & entity : entities_ ) {
32
26
auto coverage = entity.GetPath ().GetMinMaxCoveragePoints ();
33
27
if (!coverage.has_value ()) {
34
28
continue ;
@@ -49,4 +43,23 @@ Rect CanvasPass::GetCoverageRect() const {
49
43
return {min->x , min->y , diff.x , diff.y };
50
44
}
51
45
46
+ const CanvasPass::Subpasses& CanvasPass::GetSubpasses () const {
47
+ return subpasses_;
48
+ }
49
+
50
+ bool CanvasPass::AddSubpass (CanvasPass pass) {
51
+ subpasses_.emplace_back (std::move (pass));
52
+ return true ;
53
+ }
54
+
55
+ bool CanvasPass::Render (ContentRenderer& renderer,
56
+ RenderPass& parent_pass) const {
57
+ for (const auto & entity : entities_) {
58
+ if (!entity.Render (renderer, parent_pass)) {
59
+ return false ;
60
+ }
61
+ }
62
+ return true ;
63
+ }
64
+
52
65
} // namespace impeller
0 commit comments