5 #ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_IOS_SURFACE_H_
6 #define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_IOS_SURFACE_H_
12 #include "flutter/flow/embedded_views.h"
13 #include "flutter/flow/surface.h"
14 #include "flutter/fml/macros.h"
15 #include "flutter/fml/platform/darwin/scoped_nsobject.h"
23 static std::unique_ptr<IOSSurface>
Create(std::shared_ptr<IOSContext> context,
24 const fml::scoped_nsobject<CALayer>& layer);
26 std::shared_ptr<IOSContext>
GetContext()
const;
30 virtual bool IsValid()
const = 0;
39 virtual std::unique_ptr<Surface>
CreateGPUSurface(GrDirectContext* gr_context =
nullptr) = 0;
42 explicit IOSSurface(std::shared_ptr<IOSContext> ios_context);
45 std::shared_ptr<IOSContext> ios_context_;
52 #endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_IOS_SURFACE_H_