| Flutter Impeller |

Public Member Functions | List of all members
impeller::BlendColorFilter Class Referencefinal

`#include <color_filter.h>`

Inheritance diagram for impeller::BlendColorFilter:

## Public Member Functions
| BlendColorFilter (BlendMode blend_mode, Color color)
| ~BlendColorFilter () override
std::shared_ptr< ColorFilterContents > | WrapWithGPUColorFilter (std::shared_ptr< FilterInput > input, ColorFilterContents::AbsorbOpacity absorb_opacity) const override
| Wraps the given filter input with a GPU-based filter that will perform the color operation. The given input will first be rendered to a texture and then filtered. More...
ColorFilterProc | GetCPUColorFilterProc () const override
| Returns a function that can be used to filter unpremultiplied Impeller Colors on the CPU. More...
std::shared_ptr< ColorFilter > | Clone () const override
Public Member Functions inherited from impeller::ColorFilter
| ColorFilter ()
virtual | ~ColorFilter ()

## Additional Inherited Members
Public Types inherited from impeller::ColorFilter
using | ColorFilterProc = std::function< Color(Color)>
Static Public Member Functions inherited from impeller::ColorFilter
static std::shared_ptr< ColorFilter > | MakeBlend (BlendMode blend_mode, Color color)
static std::shared_ptr< ColorFilter > | MakeMatrix (ColorMatrix color_matrix)
static std::shared_ptr< ColorFilter > | MakeSrgbToLinear ()
static std::shared_ptr< ColorFilter > | MakeLinearToSrgb ()

## Detailed Description

Definition at line 59 of file color_filter.h.

## Constructor & Destructor Documentation

## ◆ BlendColorFilter()

impeller::BlendColorFilter::BlendColorFilter | ( | BlendMode | blend_mode,
|  | Color | color
| ) |  |

Definition at line 41 of file color_filter.cc.

42 : blend_mode_(blend_mode), color_(color) {}

## ◆ ~BlendColorFilter()

impeller::BlendColorFilter::~BlendColorFilter | ( |  | ) |
| override default

## Member Function Documentation

## ◆ Clone()

std::shared_ptr< ColorFilter > impeller::BlendColorFilter::Clone | ( |  | ) | const
| override virtual

Implements impeller::ColorFilter.

Definition at line 61 of file color_filter.cc.

61 {
62 return std::make_shared<BlendColorFilter>(*this);
63 }

## ◆ GetCPUColorFilterProc()

ColorFilter::ColorFilterProc impeller::BlendColorFilter::GetCPUColorFilterProc | ( |  | ) | const
| override virtual

Returns a function that can be used to filter unpremultiplied Impeller Colors on the CPU.

Implements impeller::ColorFilter.

Definition at line 55 of file color_filter.cc.

55 {
56 return [filter_blend_mode = blend_mode_, filter_color = color_](Color color) {
57 return color.Blend(filter_color, filter_blend_mode);
58 };
59 }

## ◆ WrapWithGPUColorFilter()

std::shared_ptr< ColorFilterContents > impeller::BlendColorFilter::WrapWithGPUColorFilter | ( | std::shared_ptr< FilterInput > | input,
|  | ColorFilterContents::AbsorbOpacity | absorb_opacity
| ) |  | const
| override virtual

Wraps the given filter input with a GPU-based filter that will perform the color operation. The given input will first be rendered to a texture and then filtered.

Note that this operation has no consideration for the original geometry mask of the filter input. And the entire input texture is treated as color information.

Implements impeller::ColorFilter.

Definition at line 46 of file color_filter.cc.

48 {
49 auto filter =
50 ColorFilterContents::MakeBlend(blend_mode_, {std::move(input)}, color_);
51 filter->SetAbsorbOpacity(absorb_opacity);
52 return filter;
53 }

References impeller::ColorFilterContents::MakeBlend().

The documentation for this class was generated from the following files:

- impeller/aiks/color_filter.h
- impeller/aiks/color_filter.cc

impeller::ColorFilterContents::MakeBlend
static std::shared_ptr< ColorFilterContents > MakeBlend(BlendMode blend_mode, FilterInput::Vector inputs, std::optional< Color > foreground_color=std::nullopt)
the [inputs] are expected to be in the order of dst, src.
Definition: color_filter_contents.cc:17