Vulkan SDK for Android 1.1.1 Mali Developer Center
application.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 FRAMEWORK_APPLICATION_HPP
22 #define FRAMEWORK_APPLICATION_HPP
23 
24 #include "platform/platform.hpp"
25 
26 namespace MaliSDK
27 {
28 class Context;
29 
34 {
35 public:
37  virtual ~VulkanApplication() = default;
38 
45  virtual bool initialize(Context *pContext) = 0;
46 
58  virtual void updateSwapchain(const std::vector<VkImage> &backbuffers,
59  const Platform::SwapchainDimensions &dimensions) = 0;
60 
67  virtual void render(unsigned swapchainIndex, float deltaTime) = 0;
68 
72  virtual void terminate() = 0;
73 };
74 
87 VulkanApplication *createApplication();
88 }
89 
90 #endif
virtual void terminate()=0
Destructor for the class.
virtual void render(unsigned swapchainIndex, float deltaTime)=0
Render a frame.
The Context is the primary way for samples to interact with the swapchain and get rendered images to ...
Definition: context.hpp:36
virtual void updateSwapchain(const std::vector< VkImage > &backbuffers, const Platform::SwapchainDimensions &dimensions)=0
Called when the swapchain has been initialized.
Describes the size and format of the swapchain.
Definition: platform.hpp:54
virtual ~VulkanApplication()=default
Destructor.
VulkanApplication is inherited by all samples. The common platform code will run the main loop and ta...
Definition: application.hpp:33
virtual bool initialize(Context *pContext)=0
This function is called when the context is brought up and is the constructor of this class...