Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion impeller/entity/contents/vertices_contents.cc
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ std::optional<Rect> VerticesContents::GetCoverage(const Entity& entity) const {
return geometry_->GetCoverage(entity.GetTransformation());
};

void VerticesContents::SetGeometry(std::unique_ptr<Geometry> geometry) {
void VerticesContents::SetGeometry(std::unique_ptr<VerticesGeometry> geometry) {
geometry_ = std::move(geometry);
}

Expand Down
4 changes: 2 additions & 2 deletions impeller/entity/contents/vertices_contents.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class VerticesContents final : public Contents {

~VerticesContents() override;

void SetGeometry(std::unique_ptr<Geometry> geometry);
void SetGeometry(std::unique_ptr<VerticesGeometry> geometry);

void SetColor(Color color);

Expand All @@ -42,7 +42,7 @@ class VerticesContents final : public Contents {

public:
Color color_;
std::unique_ptr<Geometry> geometry_;
std::unique_ptr<VerticesGeometry> geometry_;
BlendMode blend_mode_ = BlendMode::kSource;

FML_DISALLOW_COPY_AND_ASSIGN(VerticesContents);
Expand Down
76 changes: 3 additions & 73 deletions impeller/entity/geometry.cc
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Geometry::Geometry() = default;
Geometry::~Geometry() = default;

// static
std::unique_ptr<Geometry> Geometry::MakeVertices(Vertices vertices) {
std::unique_ptr<VerticesGeometry> Geometry::MakeVertices(Vertices vertices) {
return std::make_unique<VerticesGeometry>(std::move(vertices));
}

Expand Down Expand Up @@ -175,7 +175,8 @@ GeometryResult VerticesGeometry::GetPositionUVBuffer(
const ContentContext& renderer,
const Entity& entity,
RenderPass& pass) {
// TODO(jonahwilliams): support texture coordinates in vertices.
// TODO(jonahwilliams): support texture coordinates in vertices
// https://github.com/flutter/flutter/issues/109956
return {};
}

Expand Down Expand Up @@ -226,24 +227,6 @@ GeometryResult FillPathGeometry::GetPositionBuffer(
};
}

GeometryResult FillPathGeometry::GetPositionColorBuffer(
const ContentContext& renderer,
const Entity& entity,
RenderPass& pass,
Color paint_color,
BlendMode blend_mode) {
// TODO(jonahwilliams): support per-color vertex in path geometry.
return {};
}

GeometryResult FillPathGeometry::GetPositionUVBuffer(
const ContentContext& renderer,
const Entity& entity,
RenderPass& pass) {
// TODO(jonahwilliams): support texture coordinates in path geometry.
return {};
}

GeometryVertexType FillPathGeometry::GetVertexType() const {
return GeometryVertexType::kPosition;
}
Expand Down Expand Up @@ -597,24 +580,6 @@ GeometryResult StrokePathGeometry::GetPositionBuffer(
};
}

GeometryResult StrokePathGeometry::GetPositionColorBuffer(
const ContentContext& renderer,
const Entity& entity,
RenderPass& pass,
Color paint_color,
BlendMode blend_mode) {
// TODO(jonahwilliams): support per-color vertex in path geometry.
return {};
}

GeometryResult StrokePathGeometry::GetPositionUVBuffer(
const ContentContext& renderer,
const Entity& entity,
RenderPass& pass) {
// TODO(jonahwilliams): support texture coordinates in path geometry.
return {};
}

GeometryVertexType StrokePathGeometry::GetVertexType() const {
return GeometryVertexType::kPosition;
}
Expand Down Expand Up @@ -673,24 +638,6 @@ GeometryResult CoverGeometry::GetPositionBuffer(const ContentContext& renderer,
};
}

GeometryResult CoverGeometry::GetPositionColorBuffer(
const ContentContext& renderer,
const Entity& entity,
RenderPass& pass,
Color paint_color,
BlendMode blend_mode) {
// TODO(jonahwilliams): support per-color vertex in cover geometry.
return {};
}

GeometryResult CoverGeometry::GetPositionUVBuffer(
const ContentContext& renderer,
const Entity& entity,
RenderPass& pass) {
// TODO(jonahwilliams): support texture coordinates in cover geometry.
return {};
}

GeometryVertexType CoverGeometry::GetVertexType() const {
return GeometryVertexType::kPosition;
}
Expand Down Expand Up @@ -724,23 +671,6 @@ GeometryResult RectGeometry::GetPositionBuffer(const ContentContext& renderer,
};
}

GeometryResult RectGeometry::GetPositionColorBuffer(
const ContentContext& renderer,
const Entity& entity,
RenderPass& pass,
Color paint_color,
BlendMode blend_mode) {
// TODO(jonahwilliams): support per-color vertex in rect geometry.
return {};
}

GeometryResult RectGeometry::GetPositionUVBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass) {
// TODO(jonahwilliams): support texture coordinates in rect geometry.
return {};
}

GeometryVertexType RectGeometry::GetVertexType() const {
return GeometryVertexType::kPosition;
}
Expand Down
82 changes: 12 additions & 70 deletions impeller/entity/geometry.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,15 @@ enum class Join {
kBevel,
};

class VerticesGeometry;

class Geometry {
public:
Geometry();

virtual ~Geometry();

static std::unique_ptr<Geometry> MakeVertices(Vertices vertices);
static std::unique_ptr<VerticesGeometry> MakeVertices(Vertices vertices);

static std::unique_ptr<Geometry> MakeFillPath(Path path);

Expand All @@ -67,16 +69,6 @@ class Geometry {
const Entity& entity,
RenderPass& pass) = 0;

virtual GeometryResult GetPositionColorBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass,
Color paint_color,
BlendMode blend_mode) = 0;

virtual GeometryResult GetPositionUVBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass) = 0;

virtual GeometryVertexType GetVertexType() const = 0;

virtual std::optional<Rect> GetCoverage(const Matrix& transform) const = 0;
Expand All @@ -89,30 +81,28 @@ class VerticesGeometry : public Geometry {

~VerticesGeometry();

private:
// |Geometry|
GeometryResult GetPositionBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass) override;

// |Geometry|
GeometryResult GetPositionColorBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass,
Color paint_color,
BlendMode blend_mode) override;
BlendMode blend_mode);

// |Geometry|
GeometryResult GetPositionUVBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass) override;
RenderPass& pass);

// |Geometry|
GeometryVertexType GetVertexType() const override;
GeometryResult GetPositionBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass) override;

// |Geometry|
std::optional<Rect> GetCoverage(const Matrix& transform) const override;

// |Geometry|
GeometryVertexType GetVertexType() const override;

private:
Vertices vertices_;

FML_DISALLOW_COPY_AND_ASSIGN(VerticesGeometry);
Expand All @@ -131,18 +121,6 @@ class FillPathGeometry : public Geometry {
const Entity& entity,
RenderPass& pass) override;

// |Geometry|
GeometryResult GetPositionColorBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass,
Color paint_color,
BlendMode blend_mode) override;

// |Geometry|
GeometryResult GetPositionUVBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass) override;

// |Geometry|
GeometryVertexType GetVertexType() const override;

Expand Down Expand Up @@ -194,18 +172,6 @@ class StrokePathGeometry : public Geometry {
const Entity& entity,
RenderPass& pass) override;

// |Geometry|
GeometryResult GetPositionColorBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass,
Color paint_color,
BlendMode blend_mode) override;

// |Geometry|
GeometryResult GetPositionUVBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass) override;

// |Geometry|
GeometryVertexType GetVertexType() const override;

Expand Down Expand Up @@ -253,18 +219,6 @@ class CoverGeometry : public Geometry {
const Entity& entity,
RenderPass& pass) override;

// |Geometry|
GeometryResult GetPositionColorBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass,
Color paint_color,
BlendMode blend_mode) override;

// |Geometry|
GeometryResult GetPositionUVBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass) override;

// |Geometry|
GeometryVertexType GetVertexType() const override;

Expand All @@ -286,18 +240,6 @@ class RectGeometry : public Geometry {
const Entity& entity,
RenderPass& pass) override;

// |Geometry|
GeometryResult GetPositionColorBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass,
Color paint_color,
BlendMode blend_mode) override;

// |Geometry|
GeometryResult GetPositionUVBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass) override;

// |Geometry|
GeometryVertexType GetVertexType() const override;

Expand Down