Flutter Engine
 
Loading...
Searching...
No Matches
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 <optional>
8#include <utility>
9
10namespace impeller {
11
12ContentsFilterInput::ContentsFilterInput(std::shared_ptr<Contents> contents,
13 bool msaa_enabled)
14 : contents_(std::move(contents)), msaa_enabled_(msaa_enabled) {}
15
16ContentsFilterInput::~ContentsFilterInput() = default;
17
18std::optional<Snapshot> ContentsFilterInput::GetSnapshot(
19 std::string_view label,
20 const ContentContext& renderer,
21 const Entity& entity,
22 std::optional<Rect> coverage_limit,
23 int32_t mip_count) const {
24 if (!coverage_limit.has_value() && entity.GetContents()) {
25 coverage_limit = entity.GetContents()->GetCoverageHint();
26 }
27 if (!snapshot_.has_value()) {
28 snapshot_ =
29 contents_->RenderToSnapshot(renderer, // renderer
30 entity, // entity
31 {
32 .coverage_limit = coverage_limit, //
33 .sampler_descriptor = std::nullopt, //
34 .msaa_enabled = msaa_enabled_, //
35 .mip_count = mip_count, //
36 .label = label //
37 });
38 }
39 return snapshot_;
40}
41
42std::optional<Rect> ContentsFilterInput::GetCoverage(
43 const Entity& entity) const {
44 return contents_->GetCoverage(entity);
45}
46
47} // namespace impeller
const std::shared_ptr< Contents > & GetContents() const
Definition entity.cc:76
Definition ref_ptr.h:261