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)
 
CFramebufferGetCurrentBackbuffer (const AttachmentLoadOp colorAttachmentLoadOp, const AttachmentStoreOp colorAttachmentStoreOp, const AttachmentLoadOp depthStencilAttachmentLoadOp, const AttachmentStoreOp depthStencilAttachmentStoreOp)
 
CTextureGetCurrentBackbufferTexture ()
 
CTextureGetDepthTexture ()
 

Private Member Functions

 CSwapChain ()
 

Static Private Member Functions

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

Private Attributes

CDevicem_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< CTexturem_DepthTexture
 
VkFormat m_ImageFormat = VK_FORMAT_UNDEFINED
 
std::vector< SwapChainBackbufferm_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: