| Flutter Impeller |

Public Member Functions | List of all members
impeller::ImpellerMetalCaptureManager Class Reference

Creates and manages a Metal capture scope that supports frame capture when using the FlutterMetalLayer backed drawable. More...

`#include <context_mtl.h>`

## Public Member Functions
| ImpellerMetalCaptureManager (id< MTLDevice > device)
| Construct a new capture manager from the provided Metal device. More...
| ~ImpellerMetalCaptureManager ()=default
bool | CaptureScopeActive () const
void | StartCapture ()
| Begin a new capture scope, no-op if the scope has already started. More...
void | FinishCapture ()
| End the current capture scope. More...

## Detailed Description

Creates and manages a Metal capture scope that supports frame capture when using the FlutterMetalLayer backed drawable.

Definition at line 37 of file context_mtl.h.

## Constructor & Destructor Documentation

## ◆ ImpellerMetalCaptureManager()

impeller::ImpellerMetalCaptureManager::ImpellerMetalCaptureManager | ( | id< MTLDevice > | device | ) |
| explicit

Construct a new capture manager from the provided Metal device.

Definition at line 446 of file context_mtl.mm.

446 {
447 current_capture_scope_ = [[MTLCaptureManager sharedCaptureManager]
448 newCaptureScopeWithDevice:device];
449 [current_capture_scope_ setLabel:@"Impeller Frame"];
450 }

## ◆ ~ImpellerMetalCaptureManager()

impeller::ImpellerMetalCaptureManager::~ImpellerMetalCaptureManager | ( |  | ) |
| default

## Member Function Documentation

## ◆ CaptureScopeActive()

bool impeller::ImpellerMetalCaptureManager::CaptureScopeActive | ( |  | ) | const

Whether or not the Impeller capture scope is active.

This is distinct from whether or not there is a session recording the capture. That can be checked with `[[MTLCaptureManager sharedCaptureManager] isCapturing].`

Definition at line 452 of file context_mtl.mm.

452 {
453 return scope_active_;
454 }

## ◆ FinishCapture()

void impeller::ImpellerMetalCaptureManager::FinishCapture | ( |  | ) |

End the current capture scope.

Definition at line 464 of file context_mtl.mm.

464 {
465 FML_DCHECK(scope_active_);
466 [current_capture_scope_ endScope];
467 scope_active_ = false;
468 }

## ◆ StartCapture()

void impeller::ImpellerMetalCaptureManager::StartCapture | ( |  | ) |

Begin a new capture scope, no-op if the scope has already started.

Definition at line 456 of file context_mtl.mm.

456 {
457 if (scope_active_) {
458 return;
459 }
460 scope_active_ = true;
461 [current_capture_scope_ beginScope];
462 }

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

- impeller/renderer/backend/metal/context_mtl.h
- impeller/renderer/backend/metal/context_mtl.mm