Flutter Engine
 
Loading...
Searching...
No Matches
filter_contents_filter_input.cc
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
6
7#include <utility>
8
11
12namespace impeller {
13
14FilterContentsFilterInput::FilterContentsFilterInput(
15 std::shared_ptr<FilterContents> filter)
16 : filter_(std::move(filter)) {}
17
18FilterContentsFilterInput::~FilterContentsFilterInput() = default;
19
20std::optional<Snapshot> FilterContentsFilterInput::GetSnapshot(
21 std::string_view label,
22 const ContentContext& renderer,
23 const Entity& entity,
24 std::optional<Rect> coverage_limit,
25 int32_t mip_count) const {
26 if (!snapshot_.has_value()) {
27 snapshot_ = filter_->RenderToSnapshot(renderer, entity,
28 {.coverage_limit = coverage_limit,
29 .sampler_descriptor = std::nullopt,
30 .msaa_enabled = true,
31 .mip_count = mip_count,
32 .label = label});
33 }
34 return snapshot_;
35}
36
37std::optional<Rect> FilterContentsFilterInput::GetCoverage(
38 const Entity& entity) const {
39 return filter_->GetCoverage(entity);
40}
41
42std::optional<Rect> FilterContentsFilterInput::GetSourceCoverage(
43 const Matrix& effect_transform,
44 const Rect& output_limit) const {
45 return filter_->GetSourceCoverage(effect_transform, output_limit);
46}
47
48Matrix FilterContentsFilterInput::GetLocalTransform(
49 const Entity& entity) const {
50 return filter_->GetLocalTransform(entity.GetTransform());
51}
52
53Matrix FilterContentsFilterInput::GetTransform(const Entity& entity) const {
54 return filter_->GetTransform(entity.GetTransform());
55}
56
57void FilterContentsFilterInput::SetEffectTransform(const Matrix& matrix) {
58 filter_->SetEffectTransform(matrix);
59}
60
61void FilterContentsFilterInput::SetRenderingMode(
62 Entity::RenderingMode rendering_mode) {
63 filter_->SetRenderingMode(rendering_mode);
64}
65
66} // namespace impeller
const Matrix & GetTransform() const
Get the global transform matrix for this Entity.
Definition entity.cc:44
Definition ref_ptr.h:261
A 4x4 matrix using column-major storage.
Definition matrix.h:37