Vulkan SDK for Android 1.1.1 Mali Developer Center
MaliSDK::PNGPlatform Class Reference

The platform for a windowless PNG based platform. Instead of outputting to screen, the application dumps a stream of PNG files. More...

#include <png.hpp>

Inheritance diagram for MaliSDK::PNGPlatform:
MaliSDK::Platform

Public Member Functions

virtual ~PNGPlatform ()
 Destructor.
 
virtual Result initialize () override
 Initialize the platform. More...
 
virtual SwapchainDimensions getPreferredSwapchain () override
 Gets the preferred swapchain size. More...
 
virtual Result createWindow (const SwapchainDimensions &swapchain) override
 Creates a window with desired swapchain dimensions. More...
 
virtual void getCurrentSwapchain (std::vector< VkImage > *images, SwapchainDimensions *swapchain) override
 Gets the current swapchain. More...
 
virtual unsigned getNumSwapchainImages () const override
 Gets number of swapchain images used. More...
 
virtual Result acquireNextImage (unsigned *index) override
 At start of a frame, acquire the next swapchain image to render into. More...
 
virtual Result presentImage (unsigned index) override
 Presents an image to the swapchain. More...
 
virtual Status getWindowStatus () override
 Gets current window status. More...
 
virtual void terminate () override
 Terminates the platform.
 
- Public Member Functions inherited from MaliSDK::Platform
virtual ~Platform ()=default
 Destructor.
 
 Platform (Platform &&)=delete
 Disallow copies and moves.
 
void operator= (Platform &&)=delete
 Disallow copies and moves.
 
ContextgetContext ()
 Gets the context owned by the platform. More...
 
void addExternalLayer (const char *pName)
 Adds an additional layer to be loaded on startup, if it exists. More...
 
void setExternalDebugCallback (PFN_vkDebugReportCallbackEXT callback, void *pUserData)
 Sets an external debug callback handler. The callback will be called if the platform receives debug report events. More...
 
PFN_vkDebugReportCallbackEXT getExternalDebugCallback () const
 Returns the currently set debug callback. More...
 
void * getExternalDebugCallbackUserData () const
 Returns the currently set debug callback. More...
 
VkDevice getDevice () const
 Gets the current Vulkan device. More...
 
VkPhysicalDevice getPhysicalDevice () const
 Gets the current Vulkan physical device. More...
 
VkInstance getInstance () const
 Gets the current Vulkan instance. More...
 
VkQueue getGraphicsQueue () const
 Gets the current Vulkan graphics queue. More...
 
unsigned getGraphicsQueueIndex () const
 Gets the current Vulkan graphics queue family index. More...
 
const VkPhysicalDeviceProperties & getGpuProperties () const
 Gets the current Vulkan GPU properties. More...
 
const VkPhysicalDeviceMemoryProperties & getMemoryProperties () const
 Gets the current Vulkan GPU memory properties. More...
 

Additional Inherited Members

- Public Types inherited from MaliSDK::Platform
enum  Status { STATUS_RUNNING, STATUS_TEARDOWN }
 Describes the status of the application lifecycle. More...
 
- Static Public Member Functions inherited from MaliSDK::Platform
static Platformget ()
 The platform is a singleton. More...
 
- Protected Member Functions inherited from MaliSDK::Platform
 Platform ()=default
 Protected constructor. Only platform implementations can create this class.
 
void addExternalLayers (std::vector< const char *> &activeLayers, const std::vector< VkLayerProperties > &supportedLayers)
 Helper function to add external layers to a list of active ones. More...
 
- Protected Attributes inherited from MaliSDK::Platform
VkInstance instance = VK_NULL_HANDLE
 The Vulkan instance.
 
VkPhysicalDevice gpu = VK_NULL_HANDLE
 The Vulkan physical device.
 
VkDevice device = VK_NULL_HANDLE
 The Vulkan device.
 
VkQueue queue = VK_NULL_HANDLE
 The Vulkan device queue.
 
ContextpContext = nullptr
 The Vulkan context.
 
VkPhysicalDeviceProperties gpuProperties
 The Vulkan physical device properties.
 
VkPhysicalDeviceMemoryProperties memoryProperties
 The Vulkan physical device memory properties.
 
std::vector< VkQueueFamilyProperties > queueProperties
 The Vulkan physical device queue properties.
 
unsigned graphicsQueueIndex
 The queue family index where graphics work will be submitted.
 
std::vector< std::string > externalLayers
 List of external layers to load.
 
PFN_vkDebugReportCallbackEXT externalDebugCallback = nullptr
 External debug callback.
 
void * pExternalDebugCallbackUserData = nullptr
 User-data for external debug callback.
 

Detailed Description

The platform for a windowless PNG based platform. Instead of outputting to screen, the application dumps a stream of PNG files.

Definition at line 34 of file png.hpp.

Member Function Documentation

◆ acquireNextImage()

Result MaliSDK::PNGPlatform::acquireNextImage ( unsigned *  index)
overridevirtual

At start of a frame, acquire the next swapchain image to render into.

Parameters
[out]indexThe acquired index.
Returns
Error code. Can return RESULT_ERROR_OUTDATED_SWAPCHAIN. If this happens, acquireNextImage should be called again and VulkanApplication::updateSwapchain must be called.

Implements MaliSDK::Platform.

Definition at line 230 of file png.cpp.

◆ createWindow()

Result MaliSDK::PNGPlatform::createWindow ( const SwapchainDimensions swapchain)
overridevirtual

Creates a window with desired swapchain dimensions.

The swapchain parameters might not necessarily be honored by the platform. Use getCurrentSwapchain to query the dimensions we actually initialized.

Returns
Error code.

Implements MaliSDK::Platform.

Definition at line 214 of file png.cpp.

◆ getCurrentSwapchain()

void MaliSDK::PNGPlatform::getCurrentSwapchain ( std::vector< VkImage > *  images,
SwapchainDimensions swapchain 
)
overridevirtual

Gets the current swapchain.

Parameters
[out]imagesVkImages which application can render into.
[out]swapchainThe swapchain dimensions currently used.

Implements MaliSDK::Platform.

Definition at line 219 of file png.cpp.

◆ getNumSwapchainImages()

unsigned MaliSDK::PNGPlatform::getNumSwapchainImages ( ) const
overridevirtual

Gets number of swapchain images used.

Returns
Number of images.

Implements MaliSDK::Platform.

Definition at line 225 of file png.cpp.

◆ getPreferredSwapchain()

Platform::SwapchainDimensions MaliSDK::PNGPlatform::getPreferredSwapchain ( )
overridevirtual

Gets the preferred swapchain size.

Returns
Error code.

Implements MaliSDK::Platform.

Definition at line 205 of file png.cpp.

◆ getWindowStatus()

Platform::Status MaliSDK::PNGPlatform::getWindowStatus ( )
overridevirtual

Gets current window status.

Returns
Window status.

Implements MaliSDK::Platform.

Definition at line 116 of file png.cpp.

◆ initialize()

Result MaliSDK::PNGPlatform::initialize ( )
overridevirtual

Initialize the platform.

Returns
Error code

Implements MaliSDK::Platform.

Definition at line 121 of file png.cpp.

◆ presentImage()

Result MaliSDK::PNGPlatform::presentImage ( unsigned  index)
overridevirtual

Presents an image to the swapchain.

Parameters
indexThe swapchain index previously obtained from acquireNextImage.
Returns
Error code.

Implements MaliSDK::Platform.

Definition at line 264 of file png.cpp.


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