7 #include "display_list/effects/dl_color_filter.h"
8 #include "fml/logging.h"
17 const std::shared_ptr<FilterInput>& input,
20 filter->SetAbsorbOpacity(absorb_opacity);
25 const flutter::DlColorFilter* filter,
26 const std::shared_ptr<FilterInput>& input,
30 switch (filter->type()) {
31 case flutter::DlColorFilterType::kBlend: {
32 const flutter::DlBlendColorFilter* blend_filter = filter->asBlend();
33 FML_DCHECK(blend_filter);
36 static_cast<BlendMode>(blend_filter->mode()), {input},
38 filter->SetAbsorbOpacity(absorb_opacity);
41 case flutter::DlColorFilterType::kMatrix: {
42 const flutter::DlMatrixColorFilter* matrix_filter = filter->asMatrix();
43 FML_DCHECK(matrix_filter);
46 matrix_filter->get_matrix(color_matrix.
array);
48 filter->SetAbsorbOpacity(absorb_opacity);
51 case flutter::DlColorFilterType::kSrgbToLinearGamma: {
53 filter->SetAbsorbOpacity(absorb_opacity);
56 case flutter::DlColorFilterType::kLinearToSrgbGamma: {
58 filter->SetAbsorbOpacity(absorb_opacity);
69 switch (filter->type()) {
70 case flutter::DlColorFilterType::kBlend: {
71 const flutter::DlBlendColorFilter* blend_filter = filter->asBlend();
72 FML_DCHECK(blend_filter);
74 return [filter_blend_mode =
static_cast<BlendMode>(blend_filter->mode()),
77 return color.Blend(filter_color, filter_blend_mode);
80 case flutter::DlColorFilterType::kMatrix: {
81 const flutter::DlMatrixColorFilter* matrix_filter = filter->asMatrix();
82 FML_DCHECK(matrix_filter);
85 matrix_filter->get_matrix(color_matrix.
array);
86 return [color_matrix = color_matrix](
Color color) {
87 return color.ApplyColorMatrix(color_matrix);
90 case flutter::DlColorFilterType::kSrgbToLinearGamma: {
94 case flutter::DlColorFilterType::kLinearToSrgbGamma: {