Flutter Engine
 
Loading...
Searching...
No Matches
flutter::testing::EmbedderTestBackingStoreProducerGL Class Reference

#include <embedder_test_backingstore_producer_gl.h>

Inheritance diagram for flutter::testing::EmbedderTestBackingStoreProducerGL:
flutter::testing::EmbedderTestBackingStoreProducer

Public Member Functions

 EmbedderTestBackingStoreProducerGL (sk_sp< GrDirectContext > context, RenderTargetType type, std::shared_ptr< TestEGLContext > egl_context)
 
virtual ~EmbedderTestBackingStoreProducerGL ()
 
bool Create (const FlutterBackingStoreConfig *config, FlutterBackingStore *backing_store_out) override
 
sk_sp< SkSurface > GetSurface (const FlutterBackingStore *backing_store) const override
 
sk_sp< SkImage > MakeImageSnapshot (const FlutterBackingStore *backing_store) const override
 
- Public Member Functions inherited from flutter::testing::EmbedderTestBackingStoreProducer
 EmbedderTestBackingStoreProducer (sk_sp< GrDirectContext > context, RenderTargetType type)
 
virtual ~EmbedderTestBackingStoreProducer ()
 

Additional Inherited Members

- Public Types inherited from flutter::testing::EmbedderTestBackingStoreProducer
enum class  RenderTargetType {
  kSoftwareBuffer ,
  kSoftwareBuffer2 ,
  kOpenGLFramebuffer ,
  kOpenGLTexture ,
  kOpenGLSurface ,
  kMetalTexture ,
  kVulkanImage
}
 
- Protected Member Functions inherited from flutter::testing::EmbedderTestBackingStoreProducer
 FML_DISALLOW_COPY_AND_ASSIGN (EmbedderTestBackingStoreProducer)
 
- Protected Attributes inherited from flutter::testing::EmbedderTestBackingStoreProducer
sk_sp< GrDirectContext > context_
 
RenderTargetType type_
 

Detailed Description

Definition at line 16 of file embedder_test_backingstore_producer_gl.h.

Constructor & Destructor Documentation

◆ EmbedderTestBackingStoreProducerGL()

flutter::testing::EmbedderTestBackingStoreProducerGL::EmbedderTestBackingStoreProducerGL ( sk_sp< GrDirectContext >  context,
RenderTargetType  type,
std::shared_ptr< TestEGLContext egl_context 
)

Definition at line 24 of file embedder_test_backingstore_producer_gl.cc.

28 : EmbedderTestBackingStoreProducer(std::move(context), type),
29 test_egl_context_(std::move(egl_context)) {}
GLenum type
EmbedderTestBackingStoreProducer(sk_sp< GrDirectContext > context, RenderTargetType type)

◆ ~EmbedderTestBackingStoreProducerGL()

flutter::testing::EmbedderTestBackingStoreProducerGL::~EmbedderTestBackingStoreProducerGL ( )
virtualdefault

Member Function Documentation

◆ Create()

◆ GetSurface()

sk_sp< SkSurface > flutter::testing::EmbedderTestBackingStoreProducerGL::GetSurface ( const FlutterBackingStore backing_store) const
overridevirtual

Implements flutter::testing::EmbedderTestBackingStoreProducer.

Definition at line 49 of file embedder_test_backingstore_producer_gl.cc.

50 {
51 UserData* user_data = reinterpret_cast<UserData*>(backing_store->user_data);
52 return user_data->surface;
53}

References user_data, and FlutterBackingStore::user_data.

◆ MakeImageSnapshot()

sk_sp< SkImage > flutter::testing::EmbedderTestBackingStoreProducerGL::MakeImageSnapshot ( const FlutterBackingStore backing_store) const
overridevirtual

Implements flutter::testing::EmbedderTestBackingStoreProducer.

Definition at line 55 of file embedder_test_backingstore_producer_gl.cc.

56 {
57 UserData* user_data = reinterpret_cast<UserData*>(backing_store->user_data);
58 if (user_data->gl_surface != nullptr) {
59 // This backing store is an OpenGL Surface.
60 // We need to make it current so we can snapshot it.
61 user_data->gl_surface->MakeCurrent();
62
63 // GetRasterSurfaceSnapshot() does two
64 // gl_surface->makeImageSnapshot()'s. Doing a single
65 // ->makeImageSnapshot() will not work.
66 return user_data->gl_surface->GetRasterSurfaceSnapshot();
67 }
68
69 // Otherwise, it's a GL Texture or FrameBuffer.
70 return user_data->surface->makeImageSnapshot();
71}

References user_data, and FlutterBackingStore::user_data.


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