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

#include <dl_test_surface_metal.h>

Inheritance diagram for flutter::testing::DlMetalSurfaceProvider:
flutter::testing::DlSurfaceProvider

Public Member Functions

 DlMetalSurfaceProvider ()
 
virtual ~DlMetalSurfaceProvider ()=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
 
bool supports_impeller () const override
 
sk_sp< DlPixelDataImpellerSnapshot (const sk_sp< DisplayList > &list, int width, int height) const override
 
virtual sk_sp< DlImageMakeImpellerImage (const sk_sp< DisplayList > &list, int width, int height) const override
 
- Public Member Functions inherited from flutter::testing::DlSurfaceProvider
virtual ~DlSurfaceProvider ()=default
 
virtual bool Snapshot (std::string &filename) 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 18 of file dl_test_surface_metal.h.

Constructor & Destructor Documentation

◆ DlMetalSurfaceProvider()

flutter::testing::DlMetalSurfaceProvider::DlMetalSurfaceProvider ( )
inlineexplicit

Definition at line 20 of file dl_test_surface_metal.h.

◆ ~DlMetalSurfaceProvider()

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

Member Function Documentation

◆ backend_name()

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

Implements flutter::testing::DlSurfaceProvider.

Definition at line 31 of file dl_test_surface_metal.h.

31{ return "Metal"; }

◆ backend_type()

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

◆ GetPrimarySurface()

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

Implements flutter::testing::DlSurfaceProvider.

Definition at line 39 of file dl_test_surface_metal.mm.

39 {
40 if (!metal_surface_) {
41 return nullptr;
42 }
43 return metal_surface_;
44}

◆ ImpellerSnapshot()

sk_sp< DlPixelData > flutter::testing::DlMetalSurfaceProvider::ImpellerSnapshot ( const sk_sp< DisplayList > &  list,
int  width,
int  height 
) const
overridevirtual

Reimplemented from flutter::testing::DlSurfaceProvider.

Definition at line 76 of file dl_test_surface_metal.mm.

78 {
79 auto texture = DisplayListToTexture(list, {width, height}, *aiks_context_);
80 return sk_make_sp<DlMetalPixelData>(snapshotter_->MakeScreenshot(*aiks_context_, texture));
81}
FlTexture * texture
std::shared_ptr< Texture > DisplayListToTexture(const sk_sp< flutter::DisplayList > &display_list, ISize size, AiksContext &context, bool reset_host_buffer, bool generate_mips)
Render the provided display list to a texture with the given size.
int32_t height
int32_t width

References impeller::DisplayListToTexture(), height, texture, and width.

◆ InitializeSurface()

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

Implements flutter::testing::DlSurfaceProvider.

Definition at line 30 of file dl_test_surface_metal.mm.

30 {
31 if (format != kN32PremulPixelFormat) {
32 return false;
33 }
34 metal_context_ = std::make_unique<TestMetalContext>();
35 metal_surface_ = MakeOffscreenSurface(width, height, format);
36 return true;
37}
std::shared_ptr< DlSurfaceInstance > MakeOffscreenSurface(size_t width, size_t height, PixelFormat format) const override

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

◆ MakeImpellerImage()

sk_sp< DlImage > flutter::testing::DlMetalSurfaceProvider::MakeImpellerImage ( const sk_sp< DisplayList > &  list,
int  width,
int  height 
) const
overridevirtual

Reimplemented from flutter::testing::DlSurfaceProvider.

Definition at line 83 of file dl_test_surface_metal.mm.

85 {
86 InitScreenShotter();
88 DisplayListToTexture(list, {width, height}, *aiks_context_));
89}
static sk_sp< DlImageImpeller > Make(std::shared_ptr< Texture > texture, OwningContext owning_context=OwningContext::kIO)

References impeller::DisplayListToTexture(), height, impeller::DlImageImpeller::Make(), and width.

◆ MakeOffscreenSurface()

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

Implements flutter::testing::DlSurfaceProvider.

Definition at line 46 of file dl_test_surface_metal.mm.

49 {
50 auto surface = TestMetalSurface::Create(*metal_context_, DlISize(width, height));
51 surface->GetSurface()->getCanvas()->clear(SK_ColorTRANSPARENT);
52 return std::make_shared<DlMetalSurfaceInstance>(std::move(surface));
53}
static std::unique_ptr< TestMetalSurface > Create(const TestMetalContext &test_metal_context, DlISize surface_size=DlISize())
VkSurfaceKHR surface
Definition main.cc:65
impeller::ISize32 DlISize

References flutter::testing::TestMetalSurface::Create(), height, surface, and width.

Referenced by InitializeSurface().

◆ supports()

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

Implements flutter::testing::DlSurfaceProvider.

Definition at line 33 of file dl_test_surface_metal.h.

33 {
35 }
uint32_t uint32_t * format

References format, and flutter::testing::DlSurfaceProvider::kN32PremulPixelFormat.

◆ supports_impeller()

bool flutter::testing::DlMetalSurfaceProvider::supports_impeller ( ) const
inlineoverridevirtual

Reimplemented from flutter::testing::DlSurfaceProvider.

Definition at line 36 of file dl_test_surface_metal.h.

36{ return true; }

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