Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
Renderer::Backend::Vulkan::CSwapChain Class Referencefinal

#include <SwapChain.h>

Collaboration diagram for Renderer::Backend::Vulkan::CSwapChain:

Classes

struct  SwapChainBackbuffer
 

Public Member Functions

 ~CSwapChain ()
 
VkSwapchainKHR GetVkSwapchain ()
 
bool IsValid () const
 
bool AcquireNextImage (VkSemaphore acquireImageSemaphore)
 
void SubmitCommandsAfterAcquireNextImage (CRingCommandContext &commandContext)
 
void SubmitCommandsBeforePresent (CRingCommandContext &commandContext)
 
void Present (VkSemaphore submitDone, VkQueue queue)
 
CFramebuffer * GetCurrentBackbuffer (const AttachmentLoadOp colorAttachmentLoadOp, const AttachmentStoreOp colorAttachmentStoreOp, const AttachmentLoadOp depthStencilAttachmentLoadOp, const AttachmentStoreOp depthStencilAttachmentStoreOp)
 
CTexture * GetCurrentBackbufferTexture ()
 
CTexture * GetDepthTexture ()
 

Private Member Functions

 CSwapChain ()
 

Static Private Member Functions

static std::unique_ptr< CSwapChain > Create (CDevice *device, VkSurfaceKHR surface, int surfaceDrawableWidth, int surfaceDrawableHeight, std::unique_ptr< CSwapChain > oldSwapChain)
 

Private Attributes

CDevice * m_Device = nullptr
 
bool m_IsValid = false
 
VkSwapchainKHR m_SwapChain = VK_NULL_HANDLE
 
uint32_t m_CurrentImageIndex = std::numeric_limits<uint32_t>::max()
 
std::vector< VkImage > m_Images
 
std::vector< std::unique_ptr< CTexture > > m_Textures
 
std::unique_ptr< CTexture > m_DepthTexture
 
VkFormat m_ImageFormat = VK_FORMAT_UNDEFINED
 
std::vector< SwapChainBackbuffer > m_Backbuffers
 

Friends

class CDevice
 

Constructor & Destructor Documentation

◆ ~CSwapChain()

Renderer::Backend::Vulkan::CSwapChain::~CSwapChain ( )

◆ CSwapChain()

Renderer::Backend::Vulkan::CSwapChain::CSwapChain ( )
privatedefault

Member Function Documentation

◆ AcquireNextImage()

bool Renderer::Backend::Vulkan::CSwapChain::AcquireNextImage ( VkSemaphore  acquireImageSemaphore)

◆ Create()

std::unique_ptr< CSwapChain > Renderer::Backend::Vulkan::CSwapChain::Create ( CDevice *  device,
VkSurfaceKHR  surface,
int  surfaceDrawableWidth,
int  surfaceDrawableHeight,
std::unique_ptr< CSwapChain >  oldSwapChain 
)
staticprivate

◆ GetCurrentBackbuffer()

CFramebuffer * Renderer::Backend::Vulkan::CSwapChain::GetCurrentBackbuffer ( const AttachmentLoadOp  colorAttachmentLoadOp,
const AttachmentStoreOp  colorAttachmentStoreOp,
const AttachmentLoadOp  depthStencilAttachmentLoadOp,
const AttachmentStoreOp  depthStencilAttachmentStoreOp 
)

◆ GetCurrentBackbufferTexture()

CTexture * Renderer::Backend::Vulkan::CSwapChain::GetCurrentBackbufferTexture ( )

◆ GetDepthTexture()

CTexture * Renderer::Backend::Vulkan::CSwapChain::GetDepthTexture ( )
inline

◆ GetVkSwapchain()

VkSwapchainKHR Renderer::Backend::Vulkan::CSwapChain::GetVkSwapchain ( )
inline

◆ IsValid()

bool Renderer::Backend::Vulkan::CSwapChain::IsValid ( ) const
inline

◆ Present()

void Renderer::Backend::Vulkan::CSwapChain::Present ( VkSemaphore  submitDone,
VkQueue  queue 
)

◆ SubmitCommandsAfterAcquireNextImage()

void Renderer::Backend::Vulkan::CSwapChain::SubmitCommandsAfterAcquireNextImage ( CRingCommandContext &  commandContext)

◆ SubmitCommandsBeforePresent()

void Renderer::Backend::Vulkan::CSwapChain::SubmitCommandsBeforePresent ( CRingCommandContext &  commandContext)

Friends And Related Function Documentation

◆ CDevice

friend class CDevice
friend

Member Data Documentation

◆ m_Backbuffers

std::vector<SwapChainBackbuffer> Renderer::Backend::Vulkan::CSwapChain::m_Backbuffers
private

◆ m_CurrentImageIndex

uint32_t Renderer::Backend::Vulkan::CSwapChain::m_CurrentImageIndex = std::numeric_limits<uint32_t>::max()
private

◆ m_DepthTexture

std::unique_ptr<CTexture> Renderer::Backend::Vulkan::CSwapChain::m_DepthTexture
private

◆ m_Device

CDevice* Renderer::Backend::Vulkan::CSwapChain::m_Device = nullptr
private

◆ m_ImageFormat

VkFormat Renderer::Backend::Vulkan::CSwapChain::m_ImageFormat = VK_FORMAT_UNDEFINED
private

◆ m_Images

std::vector<VkImage> Renderer::Backend::Vulkan::CSwapChain::m_Images
private

◆ m_IsValid

bool Renderer::Backend::Vulkan::CSwapChain::m_IsValid = false
private

◆ m_SwapChain

VkSwapchainKHR Renderer::Backend::Vulkan::CSwapChain::m_SwapChain = VK_NULL_HANDLE
private

◆ m_Textures

std::vector<std::unique_ptr<CTexture> > Renderer::Backend::Vulkan::CSwapChain::m_Textures
private

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