Flutter Engine
The Flutter Engine
entity_pass_delegate.h
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
5#ifndef FLUTTER_IMPELLER_ENTITY_ENTITY_PASS_DELEGATE_H_
6#define FLUTTER_IMPELLER_ENTITY_ENTITY_PASS_DELEGATE_H_
7
8#include <memory>
9
14
15namespace impeller {
16
17class EntityPass;
18
20 public:
21 static std::unique_ptr<EntityPassDelegate> MakeDefault();
22
24
26
27 virtual bool CanElide() = 0;
28
29 /// @brief Whether or not this entity pass can be collapsed into the parent.
30 /// If true, this method may modify the entities for the current pass.
31 virtual bool CanCollapseIntoParentPass(EntityPass* entity_pass) = 0;
32
33 virtual std::shared_ptr<Contents> CreateContentsForSubpassTarget(
34 std::shared_ptr<Texture> target,
35 const Matrix& effect_transform) = 0;
36
37 virtual std::shared_ptr<FilterContents> WithImageFilter(
38 const FilterInput::Variant& input,
39 const Matrix& effect_transform) const = 0;
40
41 private:
43
44 EntityPassDelegate& operator=(const EntityPassDelegate&) = delete;
45};
46
47} // namespace impeller
48
49#endif // FLUTTER_IMPELLER_ENTITY_ENTITY_PASS_DELEGATE_H_
static std::unique_ptr< EntityPassDelegate > MakeDefault()
virtual bool CanCollapseIntoParentPass(EntityPass *entity_pass)=0
Whether or not this entity pass can be collapsed into the parent. If true, this method may modify the...
virtual std::shared_ptr< Contents > CreateContentsForSubpassTarget(std::shared_ptr< Texture > target, const Matrix &effect_transform)=0
virtual std::shared_ptr< FilterContents > WithImageFilter(const FilterInput::Variant &input, const Matrix &effect_transform) const =0
std::variant< std::shared_ptr< FilterContents >, std::shared_ptr< Contents >, std::shared_ptr< Texture >, Rect > Variant
Definition: filter_input.h:37
uint32_t * target
A 4x4 matrix using column-major storage.
Definition: matrix.h:37