Flutter Engine
The Flutter Engine
inline_pass_context.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_INLINE_PASS_CONTEXT_H_
6#define FLUTTER_IMPELLER_ENTITY_INLINE_PASS_CONTEXT_H_
7
8#include <cstdint>
9
14
15namespace impeller {
16
18 public:
20 bool just_created = false;
21 std::shared_ptr<RenderPass> pass;
22 std::shared_ptr<Texture> backdrop_texture;
23 };
24
27 EntityPassTarget& pass_target,
28 uint32_t entity_count,
29 std::optional<RenderPassResult> collapsed_parent_pass = std::nullopt);
30
32
33 bool IsValid() const;
34
35 bool IsActive() const;
36
37 std::shared_ptr<Texture> GetTexture();
38
39 bool EndPass();
40
42
43 uint32_t GetPassCount() const;
44
45 RenderPassResult GetRenderPass(uint32_t pass_depth);
46
47 private:
48 const ContentContext& renderer_;
49 EntityPassTarget& pass_target_;
50 std::shared_ptr<CommandBuffer> command_buffer_;
51 std::shared_ptr<RenderPass> pass_;
52 uint32_t pass_count_ = 0;
53 uint32_t entity_count_ = 0;
54
55 // Whether this context is collapsed into a parent entity pass.
56 bool is_collapsed_ = false;
57
58 InlinePassContext(const InlinePassContext&) = delete;
59
60 InlinePassContext& operator=(const InlinePassContext&) = delete;
61};
62
63} // namespace impeller
64
65#endif // FLUTTER_IMPELLER_ENTITY_INLINE_PASS_CONTEXT_H_
EntityPassTarget & GetPassTarget() const
std::shared_ptr< Texture > GetTexture()
RenderPassResult GetRenderPass(uint32_t pass_depth)
InlinePassContext(const ContentContext &renderer, EntityPassTarget &pass_target, uint32_t entity_count, std::optional< RenderPassResult > collapsed_parent_pass=std::nullopt)