Vulkan SDK for Android 1.1.1 Mali Developer Center
android.hpp
1 /* Copyright (c) 2016-2017, ARM Limited and Contributors
2  *
3  * SPDX-License-Identifier: MIT
4  *
5  * Permission is hereby granted, free of charge,
6  * to any person obtaining a copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation the rights to
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
9  * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
12  *
13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
14  * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
16  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
17  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19  */
20 
21 #ifndef PLATFORM_ANDROID_HPP
22 #define PLATFORM_ANDROID_HPP
23 
24 #define VK_USE_PLATFORM_ANDROID_KHR
25 #include "android_assets.hpp"
26 #include "android_native_app_glue.h"
27 #include "cpu-features.h"
28 #include "framework/application.hpp"
29 #include "platform.hpp"
30 #include "platform/os.hpp"
31 #include "platform/wsi/wsi.hpp"
32 #include <time.h>
33 
34 namespace MaliSDK
35 {
38 {
40  struct android_app *pApp;
41 
44 
46  bool active;
47 };
48 
51 {
52 public:
56  void setNativeWindow(ANativeWindow *pWindow)
57  {
58  pNativeWindow = pWindow;
59  }
60 
63  virtual SwapchainDimensions getPreferredSwapchain() override;
64 
71  virtual Result createWindow(const SwapchainDimensions &swapchain) override;
72 
75  virtual Status getWindowStatus() override;
76 
79  void terminate() override;
80 
82  void onPause();
85  void onResume(const SwapchainDimensions &swapchain);
86 
87 private:
88  Result initConnection();
89  Result initWindow();
90 
91  ANativeWindow *pNativeWindow = nullptr;
92  virtual VkSurfaceKHR createSurface() override;
93 };
94 }
95 
96 #endif
void setNativeWindow(ANativeWindow *pWindow)
Sets the native window used to create Vulkan swapchain. Called by the mainloop.
Definition: android.hpp:56
VulkanApplication * pVulkanApp
The Vulkan application.
Definition: android.hpp:43
State used for the android mainloop.
Definition: android.hpp:37
Describes the size and format of the swapchain.
Definition: platform.hpp:54
bool active
The application is in focus and running.
Definition: android.hpp:46
Status
Describes the status of the application lifecycle.
Definition: platform.hpp:65
The Android specific platform.
Definition: android.hpp:50
struct android_app * pApp
The ANativeActivity handle.
Definition: android.hpp:40
VulkanApplication is inherited by all samples. The common platform code will run the main loop and ta...
Definition: application.hpp:33
The WSI platform is a common platform for all platforms which support the VK_KHRSurface extension...
Definition: wsi.hpp:36