Flutter Impeller
surface.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_TOOLKIT_INTEROP_SURFACE_H_
6 #define FLUTTER_IMPELLER_TOOLKIT_INTEROP_SURFACE_H_
7 
8 #include <memory>
9 
15 
16 namespace impeller::interop {
17 
18 class Surface final
19  : public Object<Surface, IMPELLER_INTERNAL_HANDLE_NAME(ImpellerSurface)> {
20  public:
21  static ScopedObject<Surface> WrapFBO(Context& context,
22  uint64_t fbo,
23  PixelFormat color_format,
24  ISize size);
25 
26  explicit Surface(Context& context,
27  std::shared_ptr<impeller::Surface> surface);
28 
29  ~Surface() override;
30 
31  Surface(const Surface&) = delete;
32 
33  Surface& operator=(const Surface&) = delete;
34 
35  bool IsValid() const;
36 
37  bool DrawDisplayList(const DisplayList& dl) const;
38 
39  private:
40  ScopedObject<Context> context_;
41  std::shared_ptr<impeller::Surface> surface_;
42  bool is_valid_ = false;
43 };
44 
45 } // namespace impeller::interop
46 
47 #endif // FLUTTER_IMPELLER_TOOLKIT_INTEROP_SURFACE_H_
impeller.h
impeller::interop::Object
Definition: object.h:56
dl.h
impeller::interop::Surface::DrawDisplayList
bool DrawDisplayList(const DisplayList &dl) const
Definition: surface.cc:52
impeller::interop::ScopedObject
Definition: object.h:67
impeller::interop
Definition: color_filter.cc:7
impeller::PixelFormat
PixelFormat
The Pixel formats supported by Impeller. The naming convention denotes the usage of the component,...
Definition: formats.h:99
impeller::interop::Surface::operator=
Surface & operator=(const Surface &)=delete
surface.h
impeller::interop::Surface::Surface
Surface(Context &context, std::shared_ptr< impeller::Surface > surface)
Definition: surface.cc:15
impeller::TSize
Definition: size.h:19
impeller::interop::Context
Definition: context.h:17
impeller::interop::DisplayList
Definition: dl.h:14
impeller::interop::Surface
Definition: surface.h:18
impeller::interop::Surface::IsValid
bool IsValid() const
Definition: surface.cc:48
impeller::interop::Surface::WrapFBO
static ScopedObject< Surface > WrapFBO(Context &context, uint64_t fbo, PixelFormat color_format, ISize size)
Definition: surface.cc:23
impeller::interop::Surface::~Surface
~Surface() override
context.h
object.h