Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
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 GetBackendName () const override
 
BackendType GetBackendType () const override
 
bool SupportsPixelFormat (PixelFormat format) const override
 
- Public Member Functions inherited from flutter::testing::DlSurfaceProvider
virtual ~DlSurfaceProvider ()=default
 
virtual bool TargetsImpeller () const =0
 

Additional Inherited Members

- Public Types inherited from flutter::testing::DlSurfaceProvider
enum  PixelFormat {
  kN32Premul ,
  k565
}
 
enum class  BackendType {
  kSkiaSoftware ,
  kSkiaOpenGL ,
  kSkiaMetal ,
  kImpellerMetal ,
  kImpellerMetalSDF
}
 
- Static Public Member Functions inherited from flutter::testing::DlSurfaceProvider
static SkImageInfo MakeInfo (PixelFormat format, int w, int h)
 
static std::optional< BackendTypeNameToBackend (const std::string &name)
 
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

◆ GetBackendName()

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

Implements flutter::testing::DlSurfaceProvider.

Definition at line 28 of file dl_test_surface_gl.h.

28{ return "OpenGL"; }

◆ GetBackendType()

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

Implements flutter::testing::DlSurfaceProvider.

Definition at line 29 of file dl_test_surface_gl.h.

29 {
30 return BackendType::kSkiaOpenGL;
31 }

◆ GetPrimarySurface()

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

Implements flutter::testing::DlSurfaceProvider.

Definition at line 26 of file dl_test_surface_gl.cc.

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

◆ InitializeSurface()

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

Implements flutter::testing::DlSurfaceProvider.

Definition at line 16 of file dl_test_surface_gl.cc.

18 {
19 gl_surface_ = std::make_unique<TestGLSurface>(DlISize(width, height));
20 gl_surface_->MakeCurrent();
21
22 primary_ = MakeOffscreenSurface(width, height, format);
23 return true;
24}
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 35 of file dl_test_surface_gl.cc.

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

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

Referenced by InitializeSurface().

◆ SupportsPixelFormat()

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

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