| Flutter iOS Embedder |

Public Member Functions | List of all members
flutter::IOSContextNoop Class Referencefinal

A noop rendering context for usage on simulators without metal support. More...

`#include <ios_context_noop.h>`

Inheritance diagram for flutter::IOSContextNoop:

## Public Member Functions
| IOSContextNoop ()
| ~IOSContextNoop ()
sk_sp< GrDirectContext > | CreateResourceContext () override
| Create a resource context for use on the IO task runner. This resource context is used by Skia to upload texture to asynchronously and collect resources that are no longer needed on the render task runner. More...
sk_sp< GrDirectContext > | GetMainContext () const override
| Accessor for the Skia context associated with IOSSurfaces and the raster thread. More...
std::unique_ptr< GLContextResult > | MakeCurrent () override
| When using client rendering APIs whose contexts need to be bound to a specific thread, the engine will call this method to give the on-screen context a chance to bind to the current thread. More...
std::unique_ptr< Texture > | CreateExternalTexture (int64_t texture_id, fml::scoped_nsobject< NSObject< FlutterTexture >> texture) override
| Creates an external texture proxy of the appropriate client rendering API. More...
IOSRenderingBackend | GetBackend () const override
| Get the rendering backend used by this context. More...
Public Member Functions inherited from flutter::IOSContext
virtual | ~IOSContext ()
| Collects the context object. This must happen on the thread on which this object was created. More...
virtual std::shared_ptr< impeller::Context > | GetImpellerContext () const
virtual std::shared_ptr< impeller::AiksContext > | GetAiksContext () const

## Additional Inherited Members
Static Public Member Functions inherited from flutter::IOSContext
static std::unique_ptr< IOSContext > | Create (IOSRenderingAPI api, IOSRenderingBackend backend, const std::shared_ptr< const fml::SyncSwitch > &is_gpu_disabled_sync_switch)
| Create an iOS context object capable of creating the on-screen and off-screen GPU context for use by Skia. More...
Protected Member Functions inherited from flutter::IOSContext
| IOSContext ()

## Detailed Description

A noop rendering context for usage on simulators without metal support.

Definition at line 13 of file ios_context_noop.h.

## Constructor & Destructor Documentation

## ◆ IOSContextNoop()

flutter::IOSContextNoop::IOSContextNoop | ( |  | ) |
| default

## ◆ ~IOSContextNoop()

flutter::IOSContextNoop::~IOSContextNoop | ( |  | ) |
| default

## Member Function Documentation

## ◆ CreateExternalTexture()

std::unique_ptr< Texture > flutter::IOSContextNoop::CreateExternalTexture | ( | int64_t | texture_id,
|  | fml::scoped_nsobject< NSObject< FlutterTexture >> | texture
| ) |  |
| override virtual

Creates an external texture proxy of the appropriate client rendering API.

Parameters

  [in] | texture_id | The texture identifier
  [in] | texture | The texture

Returns
  The texture proxy if the rendering backend supports embedder provided external textures.

Implements flutter::IOSContext.

Definition at line 40 of file ios_context_noop.mm.

42 {
43 // Don't use FML for logging as it will contain engine specific details. This is a user facing
44 // message.
45 NSLog(@"Flutter: Attempted to composite external texture sources using the noop backend. "
46 @"This backend is only used on simulators. This feature is only available on actual "
47 @"devices where Metal is used for rendering.");
48
49 // Not supported in this backend.
50 return nullptr;
51 }

## ◆ CreateResourceContext()

sk_sp< GrDirectContext > flutter::IOSContextNoop::CreateResourceContext | ( |  | ) |
| override virtual

Create a resource context for use on the IO task runner. This resource context is used by Skia to upload texture to asynchronously and collect resources that are no longer needed on the render task runner.

Attention
  Client rendering APIs for which a GrDirectContext cannot be realized (software rendering), this method will always return null.

Returns
  A non-null Skia context on success. `nullptr` on failure.

Implements flutter::IOSContext.

Definition at line 19 of file ios_context_noop.mm.

19 {
20 return nullptr;
21 }

## ◆ GetBackend()

IOSRenderingBackend flutter::IOSContextNoop::GetBackend | ( |  | ) | const
| override virtual

Get the rendering backend used by this context.

Returns
  The rendering backend.

Reimplemented from flutter::IOSContext.

Definition at line 29 of file ios_context_noop.mm.

29 {
30 return IOSRenderingBackend::kImpeller;
31 }

References flutter::kImpeller.

## ◆ GetMainContext()

sk_sp< GrDirectContext > flutter::IOSContextNoop::GetMainContext | ( |  | ) | const
| override virtual

Accessor for the Skia context associated with IOSSurfaces and the raster thread.

There can be any number of resource contexts but this is the one context that will be used by surfaces to draw to the screen from the raster thread.

Returns
  `nullptr` on failure.

Attention
  The software context doesn't have a Skia context, so this value will be nullptr.

See also
  For contexts which are used for offscreen work like loading textures see IOSContext::CreateResourceContext.

Implements flutter::IOSContext.

Definition at line 24 of file ios_context_noop.mm.

24 {
25 return nullptr;
26 }

## ◆ MakeCurrent()

std::unique_ptr< GLContextResult > flutter::IOSContextNoop::MakeCurrent | ( |  | ) |
| override virtual

When using client rendering APIs whose contexts need to be bound to a specific thread, the engine will call this method to give the on-screen context a chance to bind to the current thread.

Attention
  Client rendering APIs that have no-concept of thread local bindings (anything that is not OpenGL) will always return `true`.
  Client rendering APIs for which a GrDirectContext cannot be created (software rendering) will always return `false`.
  This binds the on-screen context to the current thread. To bind the off-screen context to the thread, use the `ResoruceMakeCurrent` method instead.
  Only one context may be bound to a thread at any given time. Making a binding on a thread, clears the old binding.

Returns
  A GLContextResult that represents the result of the method. The GetResult() returns a bool that indicates If the on-screen context could be bound to the current thread.

Implements flutter::IOSContext.

Definition at line 34 of file ios_context_noop.mm.

34 {
35 // This only makes sense for context that need to be bound to a specific thread.
36 return std::make_unique<GLContextDefaultResult>(false);
37 }

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

- shell/platform/darwin/ios/ios_context_noop.h
- shell/platform/darwin/ios/ios_context_noop.mm

flutter::IOSRenderingBackend::kImpeller
@ kImpeller