HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RV_VKSurface.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: RV_VKSurface.h ( RV Library, C++)
7  *
8  * COMMENTS:
9  * Class to manage Vulkan surface object
10  */
11 #ifndef RV_VKSurface_h
12 #define RV_VKSurface_h
13 
14 #include <VE/VE_VK.h>
15 #ifdef VULKAN_PRESENTATION
16 
17 #include "RV_API.h"
18 
19 #include <UT/UT_Array.h>
20 
21 #include <VE/VE_VK.h>
22 #include "RV_TypePtrs.h"
23 
24 class RV_API RV_VKSurface
25 {
26 public:
27  static RV_VKSurfacePtr create(RV_Instance* inst, VkSurfaceKHR surface);
28 
29  RV_VKSurface(RV_Instance* inst, VkSurfaceKHR surface);
30 
31  VkSurfaceFormatKHR getFormat(VkSurfaceFormatKHR preferred_format) const;
32  VkPresentModeKHR getPresentMode(VkPresentModeKHR preferred_mode) const;
33  VkSurfaceCapabilitiesKHR getCapabilities() const
34  { return myCapabilities; }
35  bool queueFamilySupportsPresent(exint queue_family_idx) const;
36 
37  VkSurfaceKHR getVkSurface() const
38  { return myVkSurface; }
39 
40 private:
41  RV_Instance* myInst;
42 
43  VkSurfaceKHR myVkSurface;
44 
45  VkSurfaceCapabilitiesKHR myCapabilities;
47  UT_Array<VkPresentModeKHR> myPresentModes;
48 };
49 
50 #endif // VULKAN_PRESENTATION
51 
52 #endif
int64 exint
Definition: SYS_Types.h:125
VkPresentModeKHR
Definition: vulkan_core.h:7517
#define RV_API
Definition: RV_API.h:10
Handle to the main interface of Vulkan.
Definition: RV_Instance.h:44