Flutter Engine
The Flutter Engine
Classes | Public Member Functions | List of all members
flutter::EmbedderSurfaceMetalImpeller Class Referencefinal

#include <embedder_surface_metal_impeller.h>

Inheritance diagram for flutter::EmbedderSurfaceMetalImpeller:
flutter::EmbedderSurface flutter::GPUSurfaceMetalDelegate

Classes

struct  MetalDispatchTable
 

Public Member Functions

 EmbedderSurfaceMetalImpeller (GPUMTLDeviceHandle device, GPUMTLCommandQueueHandle command_queue, MetalDispatchTable dispatch_table, std::shared_ptr< EmbedderExternalViewEmbedder > external_view_embedder)
 
 ~EmbedderSurfaceMetalImpeller () override
 
- Public Member Functions inherited from flutter::EmbedderSurface
 EmbedderSurface ()
 
virtual ~EmbedderSurface ()
 
virtual bool IsValid () const =0
 
virtual std::unique_ptr< SurfaceCreateGPUSurface ()=0
 
virtual std::shared_ptr< impeller::ContextCreateImpellerContext () const
 
virtual sk_sp< GrDirectContextCreateResourceContext () const
 
- Public Member Functions inherited from flutter::GPUSurfaceMetalDelegate
 GPUSurfaceMetalDelegate (MTLRenderTargetType render_target)
 Construct a new GPUSurfaceMetalDelegate object with the specified render_target type. More...
 
virtual ~GPUSurfaceMetalDelegate ()
 
virtual GPUCAMetalLayerHandle GetCAMetalLayer (const SkISize &frame_info) const =0
 Returns the handle to the CAMetalLayer to render to. This is only called when the specified render target type is kCAMetalLayer. More...
 
virtual bool PresentDrawable (GrMTLHandle drawable) const =0
 Presents the drawable to the "screen". The drawable is obtained from the CAMetalLayer that given by GetCAMetalLayer call. This is only called when the specified render target type in kCAMetalLayer. More...
 
virtual GPUMTLTextureInfo GetMTLTexture (const SkISize &frame_info) const =0
 Returns the handle to the MTLTexture to render to. This is only called when the specified render target type is kMTLTexture. More...
 
virtual bool PresentTexture (GPUMTLTextureInfo texture) const =0
 Presents the texture with texture_id to the "screen". texture_id corresponds to a texture that has been obtained by an earlier call to GetMTLTexture. This is only called when the specified render target type is kMTLTexture. More...
 
virtual bool AllowsDrawingWhenGpuDisabled () const
 Whether to allow drawing to the surface when the GPU is disabled. More...
 
MTLRenderTargetType GetRenderTargetType ()
 

Detailed Description

Definition at line 22 of file embedder_surface_metal_impeller.h.

Constructor & Destructor Documentation

◆ EmbedderSurfaceMetalImpeller()

flutter::EmbedderSurfaceMetalImpeller::EmbedderSurfaceMetalImpeller ( GPUMTLDeviceHandle  device,
GPUMTLCommandQueueHandle  command_queue,
MetalDispatchTable  dispatch_table,
std::shared_ptr< EmbedderExternalViewEmbedder external_view_embedder 
)

Definition at line 28 of file embedder_surface_metal_impeller.mm.

34 metal_dispatch_table_(std::move(metal_dispatch_table)),
35 external_view_embedder_(std::move(external_view_embedder)) {
36 std::vector<std::shared_ptr<fml::Mapping>> shader_mappings = {
37 std::make_shared<fml::NonOwnedMapping>(impeller_entity_shaders_data,
38 impeller_entity_shaders_length),
39#if IMPELLER_ENABLE_3D
40 std::make_shared<fml::NonOwnedMapping>(impeller_scene_shaders_data,
41 impeller_scene_shaders_length),
42#endif // IMPELLER_ENABLE_3D
43 std::make_shared<fml::NonOwnedMapping>(impeller_modern_shaders_data,
44 impeller_modern_shaders_length),
45 std::make_shared<fml::NonOwnedMapping>(impeller_framebuffer_blend_shaders_data,
46 impeller_framebuffer_blend_shaders_length),
47 };
49 (id<MTLDevice>)device, // device
50 (id<MTLCommandQueue>)command_queue, // command_queue
51 shader_mappings, // shader_libraries_data
52 std::make_shared<fml::SyncSwitch>(false), // is_gpu_disabled_sync_switch
53 "Impeller Library" // library_label
54 );
55 FML_LOG(IMPORTANT) << "Using the Impeller rendering backend (Metal).";
56
57 valid_ = !!context_;
58}
GPUSurfaceMetalDelegate(MTLRenderTargetType render_target)
Construct a new GPUSurfaceMetalDelegate object with the specified render_target type.
static std::shared_ptr< ContextMTL > Create(const std::vector< std::string > &shader_library_paths, std::shared_ptr< const fml::SyncSwitch > is_gpu_disabled_sync_switch)
Definition: context_mtl.mm:221
VkDevice device
Definition: main.cc:53
#define FML_LOG(severity)
Definition: logging.h:82

◆ ~EmbedderSurfaceMetalImpeller()

flutter::EmbedderSurfaceMetalImpeller::~EmbedderSurfaceMetalImpeller ( )
overridedefault

The documentation for this class was generated from the following files: