Flutter Engine
 
Loading...
Searching...
No Matches
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 sk_sp< GrDirectContext > CreateResourceContext () const
 
- Public Member Functions inherited from flutter::GPUSurfaceMetalDelegate
 GPUSurfaceMetalDelegate (MTLRenderTargetType render_target)
 Construct a new GPUSurfaceMetalDelegate object with the specified render_target type.
 
virtual ~GPUSurfaceMetalDelegate ()
 
virtual bool PreparePresent (GrMTLHandle drawable) const
 
virtual bool AllowsDrawingWhenGpuDisabled () const
 Whether to allow drawing to the surface when the GPU is disabled.
 
MTLRenderTargetType GetRenderTargetType ()
 

Detailed Description

Definition at line 23 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 27 of file embedder_surface_metal_impeller.mm.

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

References impeller::ContextMTL::Create(), device, and FML_LOG.

◆ ~EmbedderSurfaceMetalImpeller()

flutter::EmbedderSurfaceMetalImpeller::~EmbedderSurfaceMetalImpeller ( )
overridedefault

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