| 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
10 #include "impeller/renderer/surface.h"
11 #include "impeller/toolkit/interop/context.h"
12 #include "impeller/toolkit/interop/dl.h"
13 #include "impeller/toolkit/interop/impeller.h"
14 #include "impeller/toolkit/interop/object.h"
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::interop::Context
Definition: context.h:18
impeller::interop::DisplayList
Definition: dl.h:16
impeller::interop::Object
Definition: object.h:56
impeller::interop::ScopedObject
Definition: object.h:67
impeller::interop::Surface
Definition: surface.h:19
impeller::interop::Surface::operator=
Surface & operator=(const Surface &)=delete
impeller::interop::Surface::IsValid
bool IsValid() const
Definition: surface.cc:48
impeller::interop::Surface::Surface
Surface(Context &context, std::shared_ptr< impeller::Surface > surface)
Definition: surface.cc:15
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::DrawDisplayList
bool DrawDisplayList(const DisplayList &dl) const
Definition: surface.cc:52
impeller::interop::Surface::~Surface
~Surface() override
impeller::interop::Surface::Surface
Surface(const Surface &)=delete
dl.h
impeller.h
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
object.h
surface.h
impeller::TSize
Definition: size.h:25
context.h