Skip to content

Commit 3bb7432

Browse files
committed
SwapChain: add AcquireNextImage()
1 parent 420f24a commit 3bb7432

3 files changed

Lines changed: 19 additions & 1 deletion

File tree

src/engine/renderer-vulkan/GraphicsCore/Decls.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE( VkPipeline )
6767
VK_DEFINE_NON_DISPATCHABLE_HANDLE( VkCommandPool )
6868

6969
VK_DEFINE_NON_DISPATCHABLE_HANDLE( VkFence )
70+
VK_DEFINE_NON_DISPATCHABLE_HANDLE( VkSemaphore )
7071

7172
struct GraphicsQueueRingBuffer;
7273

src/engine/renderer-vulkan/GraphicsCore/SwapChain.cpp

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,4 +228,19 @@ void SwapChain::Init( const VkInstance instance ) {
228228

229229
void SwapChain::Free() {
230230
vkDestroySwapchainKHR( device, swapChain, nullptr );
231-
}
231+
}
232+
233+
VkImage SwapChain::AcquireNextImage( const uint64 timeout, VkFence fence, VkSemaphore semaphore ) {
234+
VkAcquireNextImageInfoKHR info {
235+
.swapchain = swapChain,
236+
.timeout = timeout,
237+
.semaphore = semaphore,
238+
.fence = fence,
239+
.deviceMask = 1
240+
};
241+
242+
uint32 imageID;
243+
vkAcquireNextImage2KHR( device, &info, &imageID );
244+
245+
return images[imageID];
246+
}

src/engine/renderer-vulkan/GraphicsCore/SwapChain.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ struct SwapChain : public GraphicsResource {
6666

6767
void Init( const VkInstance instance );
6868
void Free() override;
69+
70+
VkImage AcquireNextImage( const uint64 timeout, VkFence fence, VkSemaphore semaphore );
6971
};
7072

7173
#endif // SWAP_CHAIN_H

0 commit comments

Comments
 (0)