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"
27 static std::unique_ptr<IOSSurface>
Create(std::shared_ptr<IOSContext> context,
28 const fml::scoped_nsobject<CALayer>& layer);
30 std::shared_ptr<IOSContext>
GetContext()
const;
34 virtual bool IsValid()
const = 0;
43 virtual std::unique_ptr<Surface>
CreateGPUSurface(GrDirectContext* gr_context =
nullptr) = 0;
46 explicit IOSSurface(std::shared_ptr<IOSContext> ios_context);
49 std::shared_ptr<IOSContext> ios_context_;
56 #endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_IOS_SURFACE_H_