Foundation
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Foundation::RHI::VulkanSwapchain Class Reference

#include <Swapchain.hpp>

Inheritance diagram for Foundation::RHI::VulkanSwapchain:
Foundation::RHI::RHISwapchain Foundation::RHI::RHIObject

Public Member Functions

 VulkanSwapchain (const VulkanDevice &device, SwapchainDesc const &desc)
 
Core::Span< RHITexture *constGetImages () const override
 
auto constGetVkSwapchain () const
 
RHIExtent2D GetExtents () const override
 
uint32_t GetNextImage (uint64_t timeout_ns, RHIDeviceObjectHandle< RHIDeviceSemaphore > semaphore, RHIDeviceObjectHandle< RHIDeviceFence > fence) override
 Gets the next image in the swapchain. Raises RHISwapchainResizeException if the swapchain needs to be resized.
 
void DebugSetObjectName (const char *name) override
 
- Public Member Functions inherited from Foundation::RHI::RHISwapchain
 RHISwapchain (RHIDevice const &device, SwapchainDesc const &desc)
 
float GetAspectRatio () const
 
- Public Member Functions inherited from Foundation::RHI::RHIObject
 RHIObject ()=default
 
 RHIObject (RHIObject const &)=delete
 
RHIObjectoperator= (const RHIObject &)=delete
 
 RHIObject (RHIObject &&)=delete
 
RHIObjectoperator= (RHIObject &&)=delete
 
virtual ~RHIObject ()=default
 

Private Member Functions

void Instantiate ()
 
vk::SwapchainCreateInfoKHR vkSwapchainCreateInfoFromSwapchainDesc (SwapchainDesc desc)
 

Private Attributes

const VulkanDevicemDevice
 
vk::raii::SwapchainKHR mSwapchain { nullptr }
 
std::array< uint32_t, 2 > mQueueFamilyIndices {}
 
UniquePtr< RHIObjectPool< VulkanTexture > > mImages
 
Core::Vector< RHITexture * > mImagesPtrs
 

Additional Inherited Members

- Public Attributes inherited from Foundation::RHI::RHISwapchain
struct Foundation::RHI::RHISwapchain::SwapchainDesc mDesc
 
- Protected Attributes inherited from Foundation::RHI::RHISwapchain
const RHIDevicemDevice
 

Constructor & Destructor Documentation

◆ VulkanSwapchain()

VulkanSwapchain::VulkanSwapchain ( const VulkanDevice device,
SwapchainDesc const desc 
)

Member Function Documentation

◆ DebugSetObjectName()

void VulkanSwapchain::DebugSetObjectName ( const char name)
overridevirtual

◆ GetExtents()

RHIExtent2D VulkanSwapchain::GetExtents ( ) const
overridevirtual

◆ GetImages()

Span< RHITexture *const > VulkanSwapchain::GetImages ( ) const
overridevirtual

◆ GetNextImage()

uint32_t VulkanSwapchain::GetNextImage ( uint64_t  timeout_ns,
RHIDeviceObjectHandle< RHIDeviceSemaphore semaphore,
RHIDeviceObjectHandle< RHIDeviceFence fence 
)
overridevirtual

Gets the next image in the swapchain. Raises RHISwapchainResizeException if the swapchain needs to be resized.

Implements Foundation::RHI::RHISwapchain.

◆ GetVkSwapchain()

auto const & Foundation::RHI::VulkanSwapchain::GetVkSwapchain ( ) const
inline

◆ Instantiate()

void VulkanSwapchain::Instantiate ( )
private

◆ vkSwapchainCreateInfoFromSwapchainDesc()

vk::SwapchainCreateInfoKHR VulkanSwapchain::vkSwapchainCreateInfoFromSwapchainDesc ( SwapchainDesc  desc)
private

Member Data Documentation

◆ mDevice

const VulkanDevice& Foundation::RHI::VulkanSwapchain::mDevice
private

◆ mImages

UniquePtr<RHIObjectPool<VulkanTexture> > Foundation::RHI::VulkanSwapchain::mImages
private

◆ mImagesPtrs

Core::Vector<RHITexture*> Foundation::RHI::VulkanSwapchain::mImagesPtrs
private

◆ mQueueFamilyIndices

std::array<uint32_t, 2> Foundation::RHI::VulkanSwapchain::mQueueFamilyIndices {}
private

◆ mSwapchain

vk::raii::SwapchainKHR Foundation::RHI::VulkanSwapchain::mSwapchain { nullptr }
private

The documentation for this class was generated from the following files: