mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
[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
This commit is contained in:
parent
e66cb4d55f
commit
d84b450b1e
@ -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<FilterContents> 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<GaussianBlurFilterContents>(
|
||||
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,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user