From d84b450b1ed28c8a64529453840f4b0c433d623d Mon Sep 17 00:00:00 2001 From: gaaclarke <30870216+gaaclarke@users.noreply.github.com> Date: Mon, 11 Dec 2023 10:10:10 -0800 Subject: [PATCH] [Impeller] made the blur entity test able to use the new blur (flutter/engine#48881) [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style --- .../impeller/entity/entity_unittests.cc | 34 +++++++++++++------ 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/engine/src/flutter/impeller/entity/entity_unittests.cc b/engine/src/flutter/impeller/entity/entity_unittests.cc index 1607945b77e..45a093857d1 100644 --- a/engine/src/flutter/impeller/entity/entity_unittests.cc +++ b/engine/src/flutter/impeller/entity/entity_unittests.cc @@ -20,6 +20,7 @@ #include "impeller/entity/contents/contents.h" #include "impeller/entity/contents/filters/color_filter_contents.h" #include "impeller/entity/contents/filters/filter_contents.h" +#include "impeller/entity/contents/filters/gaussian_blur_filter_contents.h" #include "impeller/entity/contents/filters/inputs/filter_input.h" #include "impeller/entity/contents/linear_gradient_contents.h" #include "impeller/entity/contents/radial_gradient_contents.h" @@ -991,7 +992,8 @@ TEST_P(EntityTest, GaussianBlurFilter) { auto callback = [&](ContentContext& context, RenderPass& pass) -> bool { const char* input_type_names[] = {"Texture", "Solid Color"}; const char* blur_type_names[] = {"Image blur", "Mask blur"}; - const char* pass_variation_names[] = {"Two pass", "Directional"}; + const char* pass_variation_names[] = {"New", "2D Directional", + "Directional"}; const char* blur_style_names[] = {"Normal", "Solid", "Outer", "Inner"}; const char* tile_mode_names[] = {"Clamp", "Repeat", "Mirror", "Decal"}; const FilterContents::BlurStyle blur_styles[] = { @@ -1083,16 +1085,26 @@ TEST_P(EntityTest, GaussianBlurFilter) { } std::shared_ptr blur; - if (selected_pass_variation == 0) { - blur = FilterContents::MakeGaussianBlur( - FilterInput::Make(input), blur_sigma_x, blur_sigma_y, - blur_styles[selected_blur_style], tile_modes[selected_tile_mode]); - } else { - Vector2 blur_vector(blur_sigma_x.sigma, blur_sigma_y.sigma); - blur = FilterContents::MakeDirectionalGaussianBlur( - FilterInput::Make(input), Sigma{blur_vector.GetLength()}, - blur_vector.Normalize()); - } + switch (selected_pass_variation) { + case 0: + blur = std::make_shared( + blur_sigma_x.sigma, tile_modes[selected_tile_mode]); + blur->SetInputs({FilterInput::Make(input)}); + break; + case 1: + blur = FilterContents::MakeGaussianBlur( + FilterInput::Make(input), blur_sigma_x, blur_sigma_y, + blur_styles[selected_blur_style], tile_modes[selected_tile_mode]); + break; + case 2: { + Vector2 blur_vector(blur_sigma_x.sigma, blur_sigma_y.sigma); + blur = FilterContents::MakeDirectionalGaussianBlur( + FilterInput::Make(input), Sigma{blur_vector.GetLength()}, + blur_vector.Normalize()); + break; + } + }; + FML_CHECK(blur); auto mask_blur = FilterContents::MakeBorderMaskBlur( FilterInput::Make(input), blur_sigma_x, blur_sigma_y,