Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
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, impeller::Flags impeller_flags)
 
 ~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 25 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,
impeller::Flags  impeller_flags 
)

Definition at line 27 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 std::make_shared<fml::NonOwnedMapping>(impeller_modern_shaders_data,
40 impeller_modern_shaders_length),
41 std::make_shared<fml::NonOwnedMapping>(impeller_framebuffer_blend_shaders_data,
42 impeller_framebuffer_blend_shaders_length),
43 };
45 impeller_flags,
46 (__bridge id<MTLDevice>)device, // device
47 (__bridge id<MTLCommandQueue>)command_queue, // command_queue
48 shader_mappings, // shader_libraries_data
49 std::make_shared<fml::SyncSwitch>(false), // is_gpu_disabled_sync_switch
50 "Impeller Library" // library_label
51 );
52 if (impeller_flags.use_sdfs) {
53 FML_LOG(IMPORTANT) << "Using the Impeller rendering backend (MetalSDF).";
54 } else {
55 FML_LOG(IMPORTANT) << "Using the Impeller rendering backend (Metal).";
56 }
57
58 valid_ = !!context_;
59}
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
bool use_sdfs
Use SDFs for rendering.
Definition flags.h:13

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

◆ ~EmbedderSurfaceMetalImpeller()

flutter::EmbedderSurfaceMetalImpeller::~EmbedderSurfaceMetalImpeller ( )
overridedefault

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