Flutter iOS Embedder
FlutterMetalLayer Class Reference

#import <FlutterMetalLayer.h>

Inheritance diagram for FlutterMetalLayer:

Instance Methods

(nullable id< CAMetalDrawable >) - nextDrawable
 

Class Methods

(BOOL) + enabled
 

Properties

id< MTLDevice > device
 
id< MTLDevice > preferredDevice
 
MTLPixelFormat pixelFormat
 
BOOL framebufferOnly
 
CGSize drawableSize
 
BOOL presentsWithTransaction
 
CGColorSpaceRef colorspace
 
BOOL wantsExtendedDynamicRangeContent
 

Detailed Description

Drop-in replacement (as far as Flutter is concerned) for CAMetalLayer that can present with transaction from a background thread.

Definition at line 12 of file FlutterMetalLayer.h.

Method Documentation

◆ enabled

+ (BOOL) enabled

Returns whether the Metal layer is enabled. This is controlled by FLTUseFlutterMetalLayer value in Info.plist.

Definition at line 423 of file FlutterMetalLayer.mm.

423  {
424  static BOOL enabled = NO;
425  static BOOL didCheckInfoPlist = NO;
426  if (!didCheckInfoPlist) {
427  didCheckInfoPlist = YES;
428  NSNumber* use_flutter_metal_layer =
429  [[NSBundle mainBundle] objectForInfoDictionaryKey:@"FLTUseFlutterMetalLayer"];
430  if (use_flutter_metal_layer != nil && [use_flutter_metal_layer boolValue]) {
431  enabled = YES;
432  FML_LOG(WARNING) << "Using FlutterMetalLayer. This is an experimental feature.";
433  }
434  }
435  return enabled;
436 }

◆ nextDrawable

- (id< CAMetalDrawable >) nextDrawable

Definition at line 369 of file FlutterMetalLayer.mm.

369  {
370  FlutterTexture* texture = [self nextTexture];
371  if (texture == nil) {
372  return nil;
373  }
374  FlutterDrawable* drawable = [[FlutterDrawable alloc] initWithTexture:texture
375  layer:self
376  drawableId:_nextDrawableId++];
377  return drawable;
378 }

Property Documentation

◆ colorspace

- (CGColorSpaceRef) colorspace
readwriteatomicassign

Definition at line 20 of file FlutterMetalLayer.h.

◆ device

- (id<MTLDevice>) device
readwriteatomicretain

Definition at line 14 of file FlutterMetalLayer.h.

◆ drawableSize

- (CGSize) drawableSize
readwriteatomic

Definition at line 18 of file FlutterMetalLayer.h.

◆ framebufferOnly

- (BOOL) framebufferOnly
readwriteatomic

Definition at line 17 of file FlutterMetalLayer.h.

◆ pixelFormat

- (MTLPixelFormat) pixelFormat
readwriteatomic

Definition at line 16 of file FlutterMetalLayer.h.

◆ preferredDevice

- (id<MTLDevice>) preferredDevice
readatomicassign

Definition at line 15 of file FlutterMetalLayer.h.

◆ presentsWithTransaction

- (BOOL) presentsWithTransaction
readwriteatomic

Definition at line 19 of file FlutterMetalLayer.h.

◆ wantsExtendedDynamicRangeContent

- (BOOL) wantsExtendedDynamicRangeContent
readwriteatomic

Definition at line 21 of file FlutterMetalLayer.h.


The documentation for this class was generated from the following files:
+[FlutterMetalLayer enabled]
BOOL enabled()
Definition: FlutterMetalLayer.mm:423
FlutterDrawable
Definition: FlutterMetalLayer.mm:84
FlutterTexture
Definition: FlutterMetalLayer.mm:54