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
Show all changes
32 commits
Select commit Hold shift + click to select a range
a7996e1
Compilable
dkwingsmt Nov 19, 2024
a77a504
Add proper file
dkwingsmt Nov 19, 2024
d6e7d00
Debugged the SE part
dkwingsmt Nov 19, 2024
1e17d18
Did it!
dkwingsmt Nov 20, 2024
6551eeb
Merge remote-tracking branch 'origin/main' into squircle
dkwingsmt Nov 20, 2024
be8fd87
Fix too large corner_radius
dkwingsmt Nov 20, 2024
79d8f7a
Fixed everything!
dkwingsmt Nov 20, 2024
b1bed73
Merge remote-tracking branch 'origin/main' into squircle
dkwingsmt Nov 20, 2024
b023965
Improve doc and structure
dkwingsmt Nov 21, 2024
3f64371
Format
dkwingsmt Nov 21, 2024
3e45cb7
Better docs
dkwingsmt Nov 21, 2024
f8e32bf
Lint
dkwingsmt Nov 22, 2024
183484f
Fix doc
dkwingsmt Nov 22, 2024
beb491e
Remove most consts
dkwingsmt Nov 22, 2024
a42a908
do-while
dkwingsmt Nov 22, 2024
920314f
Use existing buffer to generate vertex and index buffer
dkwingsmt Nov 23, 2024
2d282fe
Fix arc generation
dkwingsmt Nov 24, 2024
9fd533a
do-while works
dkwingsmt Nov 24, 2024
9572d39
Change to triangle strips
dkwingsmt Nov 26, 2024
b259bb7
Merge remote-tracking branch 'origin/main' into squircle
dkwingsmt Dec 2, 2024
2ccada0
MirrorIntoTriangleStrip and better ending audit
dkwingsmt Dec 2, 2024
4f8fd4d
CoversArea
dkwingsmt Dec 2, 2024
4af05e0
Use tesselator cache for temp storage
dkwingsmt Dec 2, 2024
993a08a
Adjust test constants and function order
dkwingsmt Dec 2, 2024
147cf82
Use thetaJ
dkwingsmt Dec 3, 2024
6998233
Dynamic angular step
dkwingsmt Dec 3, 2024
9e05fca
Add static assert
dkwingsmt Dec 3, 2024
8ba3381
Remove unused imports
dkwingsmt Dec 3, 2024
f391cf5
Simplify lerp
dkwingsmt Dec 3, 2024
ee8fb98
Better func names
dkwingsmt Dec 3, 2024
6662e20
Format
dkwingsmt Dec 3, 2024
4db5d21
Format
dkwingsmt Dec 3, 2024
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
4 changes: 4 additions & 0 deletions ci/licenses_golden/licenses_flutter
Original file line number Diff line number Diff line change
Expand Up @@ -43084,6 +43084,8 @@ ORIGIN: ../../../flutter/impeller/entity/geometry/rect_geometry.cc + ../../../fl
ORIGIN: ../../../flutter/impeller/entity/geometry/rect_geometry.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/impeller/entity/geometry/round_rect_geometry.cc + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/impeller/entity/geometry/round_rect_geometry.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/impeller/entity/geometry/round_superellipse_geometry.cc + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/impeller/entity/geometry/round_superellipse_geometry.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/impeller/entity/geometry/stroke_path_geometry.cc + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/impeller/entity/geometry/stroke_path_geometry.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/impeller/entity/geometry/superellipse_geometry.cc + ../../../flutter/LICENSE
Expand Down Expand Up @@ -46009,6 +46011,8 @@ FILE: ../../../flutter/impeller/entity/geometry/rect_geometry.cc
FILE: ../../../flutter/impeller/entity/geometry/rect_geometry.h
FILE: ../../../flutter/impeller/entity/geometry/round_rect_geometry.cc
FILE: ../../../flutter/impeller/entity/geometry/round_rect_geometry.h
FILE: ../../../flutter/impeller/entity/geometry/round_superellipse_geometry.cc
FILE: ../../../flutter/impeller/entity/geometry/round_superellipse_geometry.h
FILE: ../../../flutter/impeller/entity/geometry/stroke_path_geometry.cc
FILE: ../../../flutter/impeller/entity/geometry/stroke_path_geometry.h
FILE: ../../../flutter/impeller/entity/geometry/superellipse_geometry.cc
Expand Down
1 change: 1 addition & 0 deletions impeller/display_list/canvas.cc
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
#include "impeller/entity/geometry/point_field_geometry.h"
#include "impeller/entity/geometry/rect_geometry.h"
#include "impeller/entity/geometry/round_rect_geometry.h"
#include "impeller/entity/geometry/round_superellipse_geometry.h"
#include "impeller/entity/geometry/stroke_path_geometry.h"
#include "impeller/entity/save_layer_utils.h"
#include "impeller/geometry/color.h"
Expand Down
2 changes: 2 additions & 0 deletions impeller/entity/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@ impeller_component("entity") {
"geometry/rect_geometry.h",
"geometry/round_rect_geometry.cc",
"geometry/round_rect_geometry.h",
"geometry/round_superellipse_geometry.cc",
"geometry/round_superellipse_geometry.h",
"geometry/stroke_path_geometry.cc",
"geometry/stroke_path_geometry.h",
"geometry/superellipse_geometry.cc",
Expand Down
36 changes: 36 additions & 0 deletions impeller/entity/entity_unittests.cc
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
#include "impeller/entity/entity_playground.h"
#include "impeller/entity/geometry/geometry.h"
#include "impeller/entity/geometry/point_field_geometry.h"
#include "impeller/entity/geometry/round_superellipse_geometry.h"
#include "impeller/entity/geometry/stroke_path_geometry.h"
#include "impeller/entity/geometry/superellipse_geometry.h"
#include "impeller/geometry/color.h"
Expand Down Expand Up @@ -2332,6 +2333,41 @@ TEST_P(EntityTest, DrawSuperEllipse) {
ASSERT_TRUE(OpenPlaygroundHere(callback));
}

TEST_P(EntityTest, DrawRoundSuperEllipse) {
auto callback = [&](ContentContext& context, RenderPass& pass) -> bool {
// UI state.
static float center_x = 100;
static float center_y = 100;
static float width = 900;
static float height = 900;
static float corner_radius = 300;
static Color color = Color::Red();

ImGui::Begin("Controls", nullptr, ImGuiWindowFlags_AlwaysAutoResize);
ImGui::SliderFloat("Center X", &center_x, 0, 1000);
ImGui::SliderFloat("Center Y", &center_y, 0, 1000);
ImGui::SliderFloat("Width", &width, 0, 1000);
ImGui::SliderFloat("Height", &height, 0, 1000);
ImGui::SliderFloat("Corner radius", &corner_radius, 0, 500);
ImGui::End();

auto contents = std::make_shared<SolidColorContents>();
std::unique_ptr<RoundSuperellipseGeometry> geom =
std::make_unique<RoundSuperellipseGeometry>(
Rect::MakeOriginSize({center_x, center_y}, {width, height}),
corner_radius);
contents->SetColor(color);
contents->SetGeometry(geom.get());

Entity entity;
entity.SetContents(contents);

return entity.Render(context, pass);
};

ASSERT_TRUE(OpenPlaygroundHere(callback));
}

TEST_P(EntityTest, SolidColorApplyColorFilter) {
auto contents = SolidColorContents();
contents.SetColor(Color::CornflowerBlue().WithAlpha(0.75));
Expand Down
Loading
Loading