5 #include "flutter/testing/testing.h"
35 if (render_target.ok()) {
36 return render_target.value().GetRenderTargetTexture();
45 std::shared_ptr<Texture> texture = MakeTexture(
ISize(100, 100));
46 ASSERT_NE(texture,
nullptr);
53 std::optional<Entity> result =
54 contents->GetEntity(renderer, entity, {});
56 ASSERT_TRUE(result.has_value());
57 if (result.has_value()) {
58 std::optional<Rect> result_coverage = result.value().GetCoverage();
59 std::optional<Rect> contents_coverage = contents->GetCoverage(entity);
61 ASSERT_TRUE(result_coverage.has_value());
62 ASSERT_TRUE(contents_coverage.has_value());
63 if (result_coverage.has_value() && contents_coverage.has_value()) {
64 EXPECT_TRUE(
RectNear(result_coverage.value(), expected));
65 EXPECT_TRUE(
RectNear(contents_coverage.value(), expected));
71 RenderDilateWithFractionalCoverageIsSymmetric) {
77 std::shared_ptr<Texture> texture = MakeTexture(
ISize(100, 100));
78 ASSERT_NE(texture,
nullptr);
86 std::optional<Entity> result =
87 contents->GetEntity(renderer, entity, {});
89 ASSERT_TRUE(result.has_value());
90 if (result.has_value()) {
91 std::optional<Rect> result_coverage = result->GetCoverage();
92 ASSERT_TRUE(result_coverage.has_value());
93 if (result_coverage.has_value()) {
94 Scalar expected_expansion = radius * scale;
96 -expected_expansion, 0, 100 + expected_expansion, 100)));
97 Scalar left_expansion = 0 - result_coverage->GetLeft();
98 Scalar right_expansion = result_coverage->GetRight() - 100;
99 EXPECT_NEAR(left_expansion, right_expansion, 0.5);
105 RenderDilateYWithFractionalCoverageIsSymmetric) {
111 std::shared_ptr<Texture> texture = MakeTexture(
ISize(100, 100));
112 ASSERT_NE(texture,
nullptr);
120 std::optional<Entity> result =
121 contents->GetEntity(renderer, entity, {});
123 ASSERT_TRUE(result.has_value());
124 if (result.has_value()) {
125 std::optional<Rect> result_coverage = result->GetCoverage();
126 ASSERT_TRUE(result_coverage.has_value());
127 if (result_coverage.has_value()) {
128 Scalar expected_expansion = radius * scale;
130 0, -expected_expansion, 100, 100 + expected_expansion)));
131 Scalar top_expansion = 0 - result_coverage->GetTop();
132 Scalar bottom_expansion = result_coverage->GetBottom() - 100;
133 EXPECT_NEAR(top_expansion, bottom_expansion, 0.5);
fml::StatusOr< RenderTarget > MakeSubpass(std::string_view label, ISize texture_size, const std::shared_ptr< CommandBuffer > &command_buffer, const SubpassCallback &subpass_callback, bool msaa_enabled=true, bool depth_stencil_enabled=false, int32_t mip_count=1) const
Creates a new texture of size texture_size and calls subpass_callback with a RenderPass for drawing t...
std::shared_ptr< Context > GetContext() const
static std::shared_ptr< FilterContents > MakeDirectionalMorphology(FilterInput::Ref input, Radius radius, Vector2 direction, MorphType morph_type)
ContentContext & GetContentContext() const
std::shared_ptr< Context > GetContext() const
Render passes encode render commands directed as one specific render target into an underlying comman...
std::shared_ptr< Texture > MakeTexture(ISize size)
inline ::testing::AssertionResult RectNear(impeller::Rect a, impeller::Rect b)
TEST_P(AiksTest, DrawAtlasNoColor)
INSTANTIATE_PLAYGROUND_SUITE(AiksTest)
std::shared_ptr< CommandBuffer > command_buffer
static constexpr Matrix MakeScale(const Vector3 &s)
For convolution filters, the "radius" is the size of the convolution kernel to use on the local space...
constexpr static TRect MakeLTRB(Type left, Type top, Type right, Type bottom)