Flutter Engine
 
Loading...
Searching...
No Matches
texture_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
10
11namespace impeller {
12
13TextureFilterInput::TextureFilterInput(std::shared_ptr<Texture> texture,
14 Matrix local_transform)
15 : texture_(std::move(texture)), local_transform_(local_transform) {}
16
17TextureFilterInput::~TextureFilterInput() = default;
18
19std::optional<Snapshot> TextureFilterInput::GetSnapshot(
20 std::string_view label,
21 const ContentContext& renderer,
22 const Entity& entity,
23 std::optional<Rect> coverage_limit,
24 int32_t mip_count) const {
25 auto snapshot =
26 Snapshot{.texture = texture_, .transform = GetTransform(entity)};
27 if (texture_->GetMipCount() > 1) {
28 snapshot.sampler_descriptor.label = "TextureFilterInput Trilinear Sampler";
29 snapshot.sampler_descriptor.mip_filter = MipFilter::kLinear;
30 }
31 return snapshot;
32}
33
34std::optional<Rect> TextureFilterInput::GetCoverage(
35 const Entity& entity) const {
36 return Rect::MakeSize(texture_->GetSize())
37 .TransformBounds(GetTransform(entity));
38}
39
40Matrix TextureFilterInput::GetLocalTransform(const Entity& entity) const {
41 return local_transform_;
42}
43
44} // namespace impeller
FlTexture * texture
Definition ref_ptr.h:261
A 4x4 matrix using column-major storage.
Definition matrix.h:37
Represents a texture and its intended draw transform/sampler configuration.
Definition snapshot.h:24
std::shared_ptr< Texture > texture
Definition snapshot.h:25