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 426 of file FlutterMetalLayer.mm.

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

◆ nextDrawable

- (id< CAMetalDrawable >) nextDrawable

Definition at line 372 of file FlutterMetalLayer.mm.

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

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:426
FlutterDrawable
Definition: FlutterMetalLayer.mm:88
FlutterTexture
Definition: FlutterMetalLayer.mm:58