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

The Android specific platform. More...

#include <android.hpp>

Inheritance diagram for MaliSDK::AndroidPlatform:
MaliSDK::WSIPlatform MaliSDK::Platform

Public Member Functions

void setNativeWindow (ANativeWindow *pWindow)
 Sets the native window used to create Vulkan swapchain. Called by the mainloop. 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 Status getWindowStatus () override
 Gets current window status. More...
 
void terminate () override
 Terminates the Android platform. Called by the mainloop on APP_CMD_INIT_WINDOW from ANativeActivity.
 
void onPause ()
 Called on APP_CMD_ON_PAUSE. Tears down swapchain.
 
void onResume (const SwapchainDimensions &swapchain)
 Called on APP_CMD_ON_RESUME. Reinitializes swapchain. More...
 
- Public Member Functions inherited from MaliSDK::WSIPlatform
virtual ~WSIPlatform ()
 Destructor.
 
virtual Result initialize () override
 Initialize the platform. Can be overriden by subclasses as long as they also call this method. 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...
 
void terminate () override
 Terminates the platform. Normally this would be handled by the destructor, but certain platforms need to be able to terminate before exit() and initialize multiple times.
 
- 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::WSIPlatform
Result initVulkan (const SwapchainDimensions &swapchain, const std::vector< const char *> &instanceExtensions, const std::vector< const char *> &deviceExtensions)
 Initializes the Vulkan device. More...
 
Result initSwapchain (const SwapchainDimensions &swapchain)
 Explicitly initializes the swapchain. More...
 
void destroySwapchain ()
 Explicit tears down the swapchain.
 
- 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 Android specific platform.

Definition at line 50 of file android.hpp.

Member Function Documentation

◆ createWindow()

Result MaliSDK::AndroidPlatform::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 87 of file android.cpp.

◆ getPreferredSwapchain()

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

Gets the preferred swapchain size.

Returns
Error code.

Implements MaliSDK::Platform.

Definition at line 81 of file android.cpp.

◆ getWindowStatus()

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

Gets current window status.

Returns
Window status.

Implements MaliSDK::Platform.

Definition at line 34 of file android.cpp.

◆ onResume()

void MaliSDK::AndroidPlatform::onResume ( const SwapchainDimensions swapchain)

Called on APP_CMD_ON_RESUME. Reinitializes swapchain.

Parameters
swapchainThe swapchain parameters.

Definition at line 92 of file android.cpp.

◆ setNativeWindow()

void MaliSDK::AndroidPlatform::setNativeWindow ( ANativeWindow *  pWindow)
inline

Sets the native window used to create Vulkan swapchain. Called by the mainloop.

Parameters
pWindowThe native window.

Definition at line 56 of file android.hpp.


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