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

#include <dl_test_surface_gl.h>

Inheritance diagram for flutter::testing::DlOpenGLSurfaceProvider:
flutter::testing::DlSurfaceProvider

Public Member Functions

 DlOpenGLSurfaceProvider ()
 
virtual ~DlOpenGLSurfaceProvider ()=default
 
bool InitializeSurface (size_t width, size_t height, PixelFormat format) override
 
std::shared_ptr< DlSurfaceInstanceGetPrimarySurface () const override
 
std::shared_ptr< DlSurfaceInstanceMakeOffscreenSurface (size_t width, size_t height, PixelFormat format) const override
 
const std::string backend_name () const override
 
BackendType backend_type () const override
 
bool supports (PixelFormat format) const override
 
- Public Member Functions inherited from flutter::testing::DlSurfaceProvider
virtual ~DlSurfaceProvider ()=default
 
virtual bool supports_impeller () const
 
virtual bool Snapshot (std::string &filename) const
 
virtual sk_sp< DlPixelDataImpellerSnapshot (const sk_sp< DisplayList > &list, int width, int height) const
 
virtual sk_sp< DlImageMakeImpellerImage (const sk_sp< DisplayList > &list, int width, int height) const
 

Additional Inherited Members

- Public Types inherited from flutter::testing::DlSurfaceProvider
enum  PixelFormat {
  kN32PremulPixelFormat ,
  k565PixelFormat
}
 
enum  BackendType {
  kSoftwareBackend ,
  kOpenGlBackend ,
  kMetalBackend
}
 
- Static Public Member Functions inherited from flutter::testing::DlSurfaceProvider
static SkImageInfo MakeInfo (PixelFormat format, int w, int h)
 
static std::string BackendName (BackendType type)
 
static std::unique_ptr< DlSurfaceProviderCreate (BackendType backend_type)
 
- Protected Member Functions inherited from flutter::testing::DlSurfaceProvider
 DlSurfaceProvider ()=default
 

Detailed Description

Definition at line 15 of file dl_test_surface_gl.h.

Constructor & Destructor Documentation

◆ DlOpenGLSurfaceProvider()

flutter::testing::DlOpenGLSurfaceProvider::DlOpenGLSurfaceProvider ( )
inline

Definition at line 17 of file dl_test_surface_gl.h.

◆ ~DlOpenGLSurfaceProvider()

virtual flutter::testing::DlOpenGLSurfaceProvider::~DlOpenGLSurfaceProvider ( )
virtualdefault

Member Function Documentation

◆ backend_name()

const std::string flutter::testing::DlOpenGLSurfaceProvider::backend_name ( ) const
inlineoverridevirtual

Implements flutter::testing::DlSurfaceProvider.

Definition at line 28 of file dl_test_surface_gl.h.

28{ return "OpenGL"; }

◆ backend_type()

BackendType flutter::testing::DlOpenGLSurfaceProvider::backend_type ( ) const
inlineoverridevirtual

◆ GetPrimarySurface()

std::shared_ptr< DlSurfaceInstance > flutter::testing::DlOpenGLSurfaceProvider::GetPrimarySurface ( ) const
overridevirtual

Implements flutter::testing::DlSurfaceProvider.

Definition at line 25 of file dl_test_surface_gl.cc.

26 {
27 if (!gl_surface_->MakeCurrent()) {
28 return nullptr;
29 }
30 return primary_;
31}

◆ InitializeSurface()

bool flutter::testing::DlOpenGLSurfaceProvider::InitializeSurface ( size_t  width,
size_t  height,
PixelFormat  format 
)
overridevirtual

Implements flutter::testing::DlSurfaceProvider.

Definition at line 15 of file dl_test_surface_gl.cc.

17 {
18 gl_surface_ = std::make_unique<TestGLSurface>(DlISize(width, height));
19 gl_surface_->MakeCurrent();
20
21 primary_ = MakeOffscreenSurface(width, height, format);
22 return true;
23}
std::shared_ptr< DlSurfaceInstance > MakeOffscreenSurface(size_t width, size_t height, PixelFormat format) const override
impeller::ISize32 DlISize
int32_t height
int32_t width

References format, height, MakeOffscreenSurface(), and width.

◆ MakeOffscreenSurface()

std::shared_ptr< DlSurfaceInstance > flutter::testing::DlOpenGLSurfaceProvider::MakeOffscreenSurface ( size_t  width,
size_t  height,
PixelFormat  format 
) const
overridevirtual

Implements flutter::testing::DlSurfaceProvider.

Definition at line 34 of file dl_test_surface_gl.cc.

36 {
37 auto offscreen_surface = SkSurfaces::RenderTarget(
38 (GrRecordingContext*)gl_surface_->GetGrContext().get(),
39 skgpu::Budgeted::kNo, MakeInfo(format, width, height), 1,
40 kTopLeft_GrSurfaceOrigin, nullptr, false);
41
42 offscreen_surface->getCanvas()->clear(SK_ColorTRANSPARENT);
43 return std::make_shared<DlSurfaceInstanceBase>(offscreen_surface);
44}
static SkImageInfo MakeInfo(PixelFormat format, int w, int h)

References format, height, flutter::testing::DlSurfaceProvider::MakeInfo(), and width.

Referenced by InitializeSurface().

◆ supports()

bool flutter::testing::DlOpenGLSurfaceProvider::supports ( PixelFormat  format) const
inlineoverridevirtual

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