Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
impeller::PlaygroundImpl Class Referenceabstract

#include <playground_impl.h>

Inheritance diagram for impeller::PlaygroundImpl:
impeller::PlaygroundImplGLES impeller::PlaygroundImplMTL impeller::PlaygroundImplVK

Public Types

using WindowHandle = void *
 

Public Member Functions

virtual ~PlaygroundImpl ()
 
virtual WindowHandle GetWindowHandle () const =0
 
virtual std::shared_ptr< ContextGetContext () const =0
 
virtual std::unique_ptr< SurfaceAcquireSurfaceFrame (std::shared_ptr< Context > context)=0
 
Vector2 GetContentScale () const
 
virtual fml::Status SetCapabilities (const std::shared_ptr< Capabilities > &capabilities)=0
 

Static Public Member Functions

static std::unique_ptr< PlaygroundImplCreate (PlaygroundBackend backend, PlaygroundSwitches switches)
 

Protected Member Functions

 PlaygroundImpl (PlaygroundSwitches switches)
 

Protected Attributes

const PlaygroundSwitches switches_
 

Detailed Description

Definition at line 18 of file playground_impl.h.

Member Typedef Documentation

◆ WindowHandle

Definition at line 25 of file playground_impl.h.

Constructor & Destructor Documentation

◆ ~PlaygroundImpl()

impeller::PlaygroundImpl::~PlaygroundImpl ( )
virtualdefault

◆ PlaygroundImpl()

impeller::PlaygroundImpl::PlaygroundImpl ( PlaygroundSwitches  switches)
explicitprotected

Definition at line 55 of file playground_impl.cc.

56 : switches_(switches) {}
const PlaygroundSwitches switches_

Member Function Documentation

◆ AcquireSurfaceFrame()

virtual std::unique_ptr< Surface > impeller::PlaygroundImpl::AcquireSurfaceFrame ( std::shared_ptr< Context context)
pure virtual

◆ Create()

std::unique_ptr< PlaygroundImpl > impeller::PlaygroundImpl::Create ( PlaygroundBackend  backend,
PlaygroundSwitches  switches 
)
static

Definition at line 25 of file playground_impl.cc.

27 {
28 switch (backend) {
29#if IMPELLER_ENABLE_METAL
31 return std::make_unique<PlaygroundImplMTL>(switches);
32#endif // IMPELLER_ENABLE_METAL
33#if IMPELLER_ENABLE_OPENGLES
35 return std::make_unique<PlaygroundImplGLES>(switches);
36#endif // IMPELLER_ENABLE_OPENGLES
37#if IMPELLER_ENABLE_VULKAN
40 FML_CHECK(false) << "Attempted to create playground with backend that "
41 "isn't available or was disabled on this platform: "
42 << PlaygroundBackendToString(backend);
43 }
44 switches.enable_vulkan_validation = true;
45 return std::make_unique<PlaygroundImplVK>(switches);
46#endif // IMPELLER_ENABLE_VULKAN
47 default:
48 FML_CHECK(false) << "Attempted to create playground with backend that "
49 "isn't available or was disabled on this platform: "
50 << PlaygroundBackendToString(backend);
51 }
53}
#define FML_CHECK(condition)
Definition logging.h:85
#define FML_UNREACHABLE()
Definition logging.h:109
std::string PlaygroundBackendToString(PlaygroundBackend backend)
Definition playground.cc:44

◆ GetContentScale()

Vector2 impeller::PlaygroundImpl::GetContentScale ( ) const

Definition at line 60 of file playground_impl.cc.

60 {
61 auto window = reinterpret_cast<GLFWwindow*>(GetWindowHandle());
62
63 Vector2 scale(1, 1);
64 ::glfwGetWindowContentScale(window, &scale.x, &scale.y);
65
66 return scale;
67}
virtual WindowHandle GetWindowHandle() const =0
GLFWwindow * window
Definition main.cc:45
Point Vector2
Definition point.h:320
const Scalar scale

◆ GetContext()

virtual std::shared_ptr< Context > impeller::PlaygroundImpl::GetContext ( ) const
pure virtual

◆ GetWindowHandle()

virtual WindowHandle impeller::PlaygroundImpl::GetWindowHandle ( ) const
pure virtual

◆ SetCapabilities()

virtual fml::Status impeller::PlaygroundImpl::SetCapabilities ( const std::shared_ptr< Capabilities > &  capabilities)
pure virtual

Member Data Documentation

◆ switches_

const PlaygroundSwitches impeller::PlaygroundImpl::switches_
protected

Definition at line 40 of file playground_impl.h.


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