Flutter Impeller
framebuffer_blend_contents.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_CONTENTS_FRAMEBUFFER_BLEND_CONTENTS_H_
6 #define FLUTTER_IMPELLER_ENTITY_CONTENTS_FRAMEBUFFER_BLEND_CONTENTS_H_
7 
8 #include <memory>
9 
11 #include "impeller/entity/entity.h"
12 
13 namespace impeller {
14 
15 enum class BlendSelectValues {
16  kScreen = 0,
17  kOverlay,
18  kDarken,
19  kLighten,
21  kColorBurn,
22  kHardLight,
23  kSoftLight,
25  kExclusion,
26  kMultiply,
27  kHue,
29  kColor,
31 };
32 
34  public:
36 
38 
39  void SetBlendMode(BlendMode blend_mode);
40 
41  void SetChildContents(std::shared_ptr<Contents> child_contents);
42 
43  private:
44  // |Contents|
45  std::optional<Rect> GetCoverage(const Entity& entity) const override;
46 
47  // |Contents|
48  bool Render(const ContentContext& renderer,
49  const Entity& entity,
50  RenderPass& pass) const override;
51 
52  BlendMode blend_mode_;
53  std::shared_ptr<Contents> child_contents_;
54 
56 
57  FramebufferBlendContents& operator=(const FramebufferBlendContents&) = delete;
58 };
59 
60 } // namespace impeller
61 
62 #endif // FLUTTER_IMPELLER_ENTITY_CONTENTS_FRAMEBUFFER_BLEND_CONTENTS_H_
void SetChildContents(std::shared_ptr< Contents > child_contents)
Render passes encode render commands directed as one specific render target into an underlying comman...
Definition: render_pass.h:30
BlendMode
Definition: color.h:58