11 #ifndef RV_VKSwapchain_h
12 #define RV_VKSwapchain_h
16 #ifdef VULKAN_PRESENTATION
29 class RV_API RV_VKSwapchainCreateInfo
32 exint getWidth()
const
33 {
return myVkCreateInfo.imageExtent.width; }
34 exint getHeight()
const
35 {
return myVkCreateInfo.imageExtent.height; }
37 {
return myVkCreateInfo.imageFormat; }
39 void setSurface(RV_VKSurface*
surface);
40 void setMinImgCount(
exint img_count);
45 void setOldSwapchain(RV_VKSwapchain* old_sc);
47 { myVkCreateInfo.imageUsage =
usage; }
49 { myVkCreateInfo.preTransform =
transform; }
50 void setClipped(
bool clipped)
51 { myVkCreateInfo.clipped = clipped; }
53 RV_VKSwapchainCreateInfo() =
default;
57 new RV_VKSwapchainCreateInfo(*
this));
82 RV_VKSurface* mySurface;
84 RV_VKSwapchainCreateInfo(
const RV_VKSwapchainCreateInfo&) =
default;
85 RV_VKSwapchainCreateInfo &
operator=(
const RV_VKSwapchainCreateInfo&) =
delete;
87 friend class RV_VKSwapchain;
90 class RV_API RV_VKSwapchain
93 static RV_VKSwapchainPtr create(
95 const RV_VKSwapchainCreateInfo* info);
99 const RV_VKSwapchainCreateInfo* info,
100 VkSwapchainKHR vk_sc);
105 bool isInitialized()
const
106 {
return myImageCount; }
111 VkSwapchainKHR getVkSwapchain()
const
112 {
return myVkSwapchain; }
113 uint32_t getCurrentImageIndex()
const
114 {
return myImageIndex; }
116 {
return myImages(myImageIndex).get(); }
118 {
return myFramebuffers(myImageIndex).get(); }
119 VkSemaphore getCurrentImageAcquiredSem()
const
120 {
return myImageAcquiredSems(myFrameIndex); }
121 VkSemaphore getCurrentPresentReadySem()
const
122 {
return myPresentReadySems(myFrameIndex); }
128 VkSwapchainKHR myVkSwapchain;
135 uint32_t myImageCount = 0;
136 uint32_t myFrameIndex = 0;
137 uint32_t myImageIndex = 0;
140 #endif // VULKAN_PRESENTATION
VkFlags VkImageUsageFlags
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
GLint GLsizei GLsizei height
#define UT_NON_COPYABLE(CLASS)
Define deleted copy constructor and assignment operator inside a class.
OPENVDB_API void initialize()
Global registration of native Grid, Transform, Metadata and Point attribute types. Also initializes blosc (if enabled).
GA_API const UT_StringHolder transform
Handle to the main interface of Vulkan.
GLsizeiptr const void GLenum usage
LeafData & operator=(const LeafData &)=delete
VkSurfaceTransformFlagBitsKHR