diff --git a/impeller/display_list/display_list_dispatcher.cc b/impeller/display_list/display_list_dispatcher.cc index 1724ecf258942..331e002aa5aba 100644 --- a/impeller/display_list/display_list_dispatcher.cc +++ b/impeller/display_list/display_list_dispatcher.cc @@ -79,9 +79,22 @@ void DisplayListDispatcher::setShader(sk_sp shader) { } // |flutter::Dispatcher| -void DisplayListDispatcher::setColorFilter(sk_sp filter) { +void DisplayListDispatcher::setColorFilter( + const flutter::DlColorFilter* filter) { // Needs https://github.com/flutter/flutter/issues/95434 - UNIMPLEMENTED; + if (filter == nullptr) { + // Reset everything + return; + } + switch (filter->type()) { + case flutter::DlColorFilter::kBlend: + case flutter::DlColorFilter::kMatrix: + case flutter::DlColorFilter::kSrgbToLinearGamma: + case flutter::DlColorFilter::kLinearToSrgbGamma: + case flutter::DlColorFilter::kUnknown: + UNIMPLEMENTED; + break; + } } // |flutter::Dispatcher| diff --git a/impeller/display_list/display_list_dispatcher.h b/impeller/display_list/display_list_dispatcher.h index 139ed5c6858fd..79234d418480a 100644 --- a/impeller/display_list/display_list_dispatcher.h +++ b/impeller/display_list/display_list_dispatcher.h @@ -48,7 +48,7 @@ class DisplayListDispatcher final : public flutter::Dispatcher { void setShader(sk_sp shader) override; // |flutter::Dispatcher| - void setColorFilter(sk_sp filter) override; + void setColorFilter(const flutter::DlColorFilter* filter) override; // |flutter::Dispatcher| void setInvertColors(bool invert) override;