Skip to content

Commit 28af36b

Browse files
chinmaygardednfield
authored andcommitted
Merge entity renderer impl into the entity renderer.
1 parent 55396bc commit 28af36b

11 files changed

+54
-120
lines changed

impeller/aiks/BUILD.gn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ impeller_component("aiks") {
1616
"picture.h",
1717
"picture_recorder.cc",
1818
"picture_recorder.h",
19+
"picture_renderer.cc",
1920
"picture_renderer.h",
20-
"picture_renderer.mm",
2121
]
2222

2323
public_deps = [
File renamed without changes.

impeller/entity/BUILD.gn

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,14 @@ impeller_shaders("entity_shaders") {
1717

1818
impeller_component("entity") {
1919
sources = [
20+
"content_renderer.cc",
2021
"content_renderer.h",
21-
"content_renderer.mm",
22+
"contents.cc",
2223
"contents.h",
23-
"contents.mm",
2424
"entity.cc",
2525
"entity.h",
26+
"entity_renderer.cc",
2627
"entity_renderer.h",
27-
"entity_renderer.mm",
28-
"entity_renderer_impl.h",
29-
"entity_renderer_impl.mm",
3028
]
3129

3230
deps = [ ":entity_shaders" ]
@@ -40,7 +38,7 @@ impeller_component("entity") {
4038
impeller_component("entity_unittests") {
4139
testonly = true
4240

43-
sources = [ "entity_unittests.mm" ]
41+
sources = [ "entity_unittests.cc" ]
4442

4543
deps = [
4644
":entity",

impeller/entity/content_renderer.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
#include <memory>
88

99
#include "flutter/fml/macros.h"
10-
#include "impeller/entity/gradient_fill.frag.h"
11-
#include "impeller/entity/gradient_fill.vert.h"
10+
#include "flutter/impeller/entity/gradient_fill.frag.h"
11+
#include "flutter/impeller/entity/gradient_fill.vert.h"
1212
#include "impeller/renderer/pipeline.h"
1313

1414
namespace impeller {
File renamed without changes.

impeller/entity/entity_renderer_impl.mm renamed to impeller/entity/entity_renderer.cc

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
#include "impeller/entity/entity_renderer_impl.h"
5+
#include "flutter/impeller/entity/entity_renderer.h"
66

77
#include "flutter/fml/trace_event.h"
88
#include "impeller/renderer/tessellator.h"
99
#include "impeller/renderer/vertex_buffer_builder.h"
1010

1111
namespace impeller {
1212

13-
EntityRendererImpl::EntityRendererImpl(std::shared_ptr<Context> context)
13+
EntityRenderer::EntityRenderer(std::shared_ptr<Context> context)
1414
: context_(std::move(context)) {
1515
if (!context_ || !context_->IsValid()) {
1616
return;
@@ -26,13 +26,30 @@
2626
is_valid_ = true;
2727
}
2828

29-
EntityRendererImpl::~EntityRendererImpl() = default;
29+
EntityRenderer::~EntityRenderer() = default;
3030

31-
bool EntityRendererImpl::IsValid() const {
31+
bool EntityRenderer::IsValid() const {
3232
return is_valid_;
3333
}
3434

35-
EntityRendererImpl::RenderResult EntityRendererImpl::RenderEntity(
35+
bool EntityRenderer::RenderEntities(const Surface& surface,
36+
RenderPass& onscreen_pass,
37+
const std::vector<Entity>& entities) {
38+
if (!IsValid()) {
39+
return false;
40+
}
41+
42+
for (const auto& entity : entities) {
43+
if (RenderEntity(surface, onscreen_pass, entity) ==
44+
EntityRenderer::RenderResult::kFailure) {
45+
return false;
46+
}
47+
}
48+
49+
return true;
50+
}
51+
52+
EntityRenderer::RenderResult EntityRenderer::RenderEntity(
3653
const Surface& surface,
3754
RenderPass& pass,
3855
const Entity& entity) {

impeller/entity/entity_renderer.h

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,18 @@
77
#include <memory>
88

99
#include "flutter/fml/macros.h"
10+
#include "flutter/impeller/entity/solid_fill.frag.h"
11+
#include "flutter/impeller/entity/solid_fill.vert.h"
12+
#include "impeller/entity/content_renderer.h"
1013
#include "impeller/entity/entity.h"
14+
#include "impeller/renderer/context.h"
15+
#include "impeller/renderer/pipeline.h"
16+
#include "impeller/renderer/pipeline_builder.h"
17+
#include "impeller/renderer/render_pass.h"
18+
#include "impeller/renderer/surface.h"
1119

1220
namespace impeller {
1321

14-
class Surface;
15-
class RenderPass;
16-
class Context;
17-
class EntityRendererImpl;
18-
1922
class EntityRenderer {
2023
public:
2124
EntityRenderer(std::shared_ptr<Context> context);
@@ -26,10 +29,25 @@ class EntityRenderer {
2629

2730
[[nodiscard]] bool RenderEntities(const Surface& surface,
2831
RenderPass& onscreen_pass,
29-
const std::vector<Entity>& entities) const;
32+
const std::vector<Entity>& entities);
33+
34+
enum class RenderResult {
35+
kSkipped,
36+
kSuccess,
37+
kFailure,
38+
};
39+
40+
[[nodiscard]] RenderResult RenderEntity(const Surface& surface,
41+
RenderPass& onscreen_pass,
42+
const Entity& entities);
3043

3144
private:
32-
std::unique_ptr<EntityRendererImpl> renderer_;
45+
using SolidFillPipeline =
46+
PipelineT<SolidFillVertexShader, SolidFillFragmentShader>;
47+
48+
std::shared_ptr<Context> context_;
49+
std::unique_ptr<SolidFillPipeline> solid_fill_pipeline_;
50+
std::unique_ptr<ContentRenderer> content_renderer_;
3351
bool is_valid_ = false;
3452

3553
FML_DISALLOW_COPY_AND_ASSIGN(EntityRenderer);

impeller/entity/entity_renderer.mm

Lines changed: 0 additions & 43 deletions
This file was deleted.

impeller/entity/entity_renderer_impl.h

Lines changed: 0 additions & 56 deletions
This file was deleted.

0 commit comments

Comments
 (0)