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

#include <embedder_external_texture_gl.h>

Inheritance diagram for flutter::EmbedderExternalTextureGL:
flutter::Texture flutter::ContextListener

Public Types

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

Public Member Functions

 EmbedderExternalTextureGL (int64_t texture_identifier, const ExternalTextureCallback &callback)
 
 ~EmbedderExternalTextureGL ()
 
- 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 15 of file embedder_external_texture_gl.h.

Member Typedef Documentation

◆ ExternalTextureCallback

using flutter::EmbedderExternalTextureGL::ExternalTextureCallback = std::function< std::unique_ptr<FlutterOpenGLTexture>(int64_t, size_t, size_t)>

Definition at line 17 of file embedder_external_texture_gl.h.

Constructor & Destructor Documentation

◆ EmbedderExternalTextureGL()

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

Definition at line 23 of file embedder_external_texture_gl.cc.

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

◆ ~EmbedderExternalTextureGL()

flutter::EmbedderExternalTextureGL::~EmbedderExternalTextureGL ( )
default

Member Function Documentation

◆ MarkNewFrameAvailable()

void flutter::EmbedderExternalTextureGL::MarkNewFrameAvailable ( )
overrideprivatevirtual

Implements flutter::Texture.

Definition at line 117 of file embedder_external_texture_gl.cc.

117 {
118 last_image_ = nullptr;
119}

◆ OnGrContextCreated()

void flutter::EmbedderExternalTextureGL::OnGrContextCreated ( )
overrideprivatevirtual

Implements flutter::ContextListener.

Definition at line 111 of file embedder_external_texture_gl.cc.

111{}

◆ OnGrContextDestroyed()

void flutter::EmbedderExternalTextureGL::OnGrContextDestroyed ( )
overrideprivatevirtual

Implements flutter::ContextListener.

Definition at line 114 of file embedder_external_texture_gl.cc.

114{}

◆ OnTextureUnregistered()

void flutter::EmbedderExternalTextureGL::OnTextureUnregistered ( )
overrideprivatevirtual

Implements flutter::Texture.

Definition at line 122 of file embedder_external_texture_gl.cc.

122{}

◆ Paint()

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

Implements flutter::Texture.

Definition at line 33 of file embedder_external_texture_gl.cc.

36 {
37 if (last_image_ == nullptr) {
38 last_image_ =
39 ResolveTexture(Id(), //
40 context.gr_context, //
41 SkISize::Make(bounds.width(), bounds.height()) //
42 );
43 }
44
45 DlCanvas* canvas = context.canvas;
46 const DlPaint* paint = context.paint;
47
48 if (last_image_) {
49 SkRect image_bounds = SkRect::Make(last_image_->bounds());
50 if (bounds != image_bounds) {
51 canvas->DrawImageRect(last_image_, image_bounds, bounds, sampling, paint);
52 } else {
53 canvas->DrawImage(last_image_, {bounds.x(), bounds.y()}, sampling, paint);
54 }
55 }
56}
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: