Flutter Impeller
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 
12 namespace impeller {
13 
14 FilterContentsFilterInput::FilterContentsFilterInput(
15  std::shared_ptr<FilterContents> filter)
16  : filter_(std::move(filter)) {}
17 
18 FilterContentsFilterInput::~FilterContentsFilterInput() = default;
19 
20 std::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 
37 std::optional<Rect> FilterContentsFilterInput::GetCoverage(
38  const Entity& entity) const {
39  return filter_->GetCoverage(entity);
40 }
41 
42 std::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 
48 Matrix FilterContentsFilterInput::GetLocalTransform(
49  const Entity& entity) const {
50  return filter_->GetLocalTransform(entity.GetTransform());
51 }
52 
53 Matrix FilterContentsFilterInput::GetTransform(const Entity& entity) const {
54  return filter_->GetTransform(entity.GetTransform());
55 }
56 
57 void FilterContentsFilterInput::SetEffectTransform(const Matrix& matrix) {
58  filter_->SetEffectTransform(matrix);
59 }
60 
61 void 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:46
Definition: comparable.h:95
A 4x4 matrix using column-major storage.
Definition: matrix.h:37