Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Member Functions | List of all members
flutter::EmbedderExternalTextureMetal Class Reference

#include <embedder_external_texture_metal.h>

Inheritance diagram for flutter::EmbedderExternalTextureMetal:
flutter::Texture flutter::ContextListener

Public Types

using ExternalTextureCallback = std::function< std::unique_ptr< FlutterMetalExternalTexture >(int64_t, size_t, size_t)>
 

Public Member Functions

 EmbedderExternalTextureMetal (int64_t texture_identifier, const ExternalTextureCallback &callback)
 
 ~EmbedderExternalTextureMetal ()
 
- Public Member Functions inherited from flutter::Texture
 Texture (int64_t id)
 
virtual ~Texture ()
 
int64_t Id ()
 
- Public Member Functions inherited from flutter::ContextListener
 ContextListener ()
 
 ~ContextListener ()
 

Private Member Functions

void Paint (PaintContext &context, const SkRect &bounds, bool freeze, const DlImageSampling sampling) override
 
void OnGrContextCreated () override
 
void OnGrContextDestroyed () override
 
void MarkNewFrameAvailable () override
 
void OnTextureUnregistered () override
 

Detailed Description

Definition at line 16 of file embedder_external_texture_metal.h.

Member Typedef Documentation

◆ ExternalTextureCallback

using flutter::EmbedderExternalTextureMetal::ExternalTextureCallback = std::function< std::unique_ptr<FlutterMetalExternalTexture>(int64_t, size_t, size_t)>

Definition at line 18 of file embedder_external_texture_metal.h.

Constructor & Destructor Documentation

◆ EmbedderExternalTextureMetal()

flutter::EmbedderExternalTextureMetal::EmbedderExternalTextureMetal ( int64_t  texture_identifier,
const ExternalTextureCallback callback 
)

Definition at line 26 of file embedder_external_texture_metal.mm.

28 : Texture(texture_identifier), external_texture_callback_(callback) {
29 FML_DCHECK(external_texture_callback_);
30}
Texture(int64_t id)
Definition texture.cc:13
FlKeyEvent uint64_t FlKeyResponderAsyncCallback callback
#define FML_DCHECK(condition)
Definition logging.h:103

◆ ~EmbedderExternalTextureMetal()

flutter::EmbedderExternalTextureMetal::~EmbedderExternalTextureMetal ( )
default

Member Function Documentation

◆ MarkNewFrameAvailable()

void flutter::EmbedderExternalTextureMetal::MarkNewFrameAvailable ( )
overrideprivatevirtual

Implements flutter::Texture.

Definition at line 114 of file embedder_external_texture_metal.mm.

114 {
115 last_image_ = nullptr;
116}

◆ OnGrContextCreated()

void flutter::EmbedderExternalTextureMetal::OnGrContextCreated ( )
overrideprivatevirtual

Implements flutter::ContextListener.

Definition at line 108 of file embedder_external_texture_metal.mm.

108{}

◆ OnGrContextDestroyed()

void flutter::EmbedderExternalTextureMetal::OnGrContextDestroyed ( )
overrideprivatevirtual

Implements flutter::ContextListener.

Definition at line 111 of file embedder_external_texture_metal.mm.

111{}

◆ OnTextureUnregistered()

void flutter::EmbedderExternalTextureMetal::OnTextureUnregistered ( )
overrideprivatevirtual

Implements flutter::Texture.

Definition at line 119 of file embedder_external_texture_metal.mm.

119{}

◆ Paint()

void flutter::EmbedderExternalTextureMetal::Paint ( PaintContext context,
const SkRect bounds,
bool  freeze,
const DlImageSampling  sampling 
)
overrideprivatevirtual

Implements flutter::Texture.

Definition at line 35 of file embedder_external_texture_metal.mm.

38 {
39 if (last_image_ == nullptr) {
40 last_image_ =
41 ResolveTexture(Id(), context.gr_context, SkISize::Make(bounds.width(), bounds.height()));
42 }
43
44 DlCanvas* canvas = context.canvas;
45 const DlPaint* paint = context.paint;
46
47 if (last_image_) {
48 SkRect image_bounds = SkRect::Make(last_image_->bounds());
49 if (bounds != image_bounds) {
50 canvas->DrawImageRect(last_image_, image_bounds, bounds, sampling, paint);
51 } else {
52 canvas->DrawImage(last_image_, {bounds.x(), bounds.y()}, sampling, paint);
53 }
54 }
55}
int64_t Id()
Definition texture.h:63
const Paint & paint
Optional< SkRect > bounds
Definition SkRecords.h:189
SkSamplingOptions sampling
Definition SkRecords.h:337
static constexpr SkISize Make(int32_t w, int32_t h)
Definition SkSize.h:20
static SkRect Make(const SkISize &size)
Definition SkRect.h:669

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