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

#include <Framebuffer.h>

Inheritance diagram for Renderer::Backend::Vulkan::CFramebuffer:
Collaboration diagram for Renderer::Backend::Vulkan::CFramebuffer:

Public Types

using ColorAttachments = PS::StaticVector< CTexture *, 4 >
 

Public Member Functions

 ~CFramebuffer () override
 
IDevice * GetDevice () override
 
const CColor & GetClearColor () const override
 Returns a clear color for all color attachments of the framebuffer. More...
 
uint32_t GetWidth () const override
 
uint32_t GetHeight () const override
 
uint32_t GetSampleCount () const
 
VkRenderPass GetRenderPass () const
 
VkFramebuffer GetFramebuffer () const
 
const ColorAttachments & GetColorAttachments ()
 
CTexture * GetDepthStencilAttachment ()
 
AttachmentLoadOp GetColorAttachmentLoadOp () const
 
AttachmentStoreOp GetColorAttachmentStoreOp () const
 
AttachmentLoadOp GetDepthStencilAttachmentLoadOp () const
 
AttachmentStoreOp GetDepthStencilAttachmentStoreOp () const
 
DeviceObjectUID GetUID () const
 
virtual const CColor & GetClearColor () const =0
 Returns a clear color for all color attachments of the framebuffer. More...
 
virtual uint32_t GetWidth () const =0
 
virtual uint32_t GetHeight () const =0
 
- Public Member Functions inherited from Renderer::Backend::IDeviceObject< IFramebuffer >
virtual ~IDeviceObject ()
 
virtual IDevice * GetDevice ()=0
 
T * As ()
 

Private Member Functions

 CFramebuffer ()=default
 

Static Private Member Functions

static std::unique_ptr< CFramebuffer > Create (CDevice *device, const char *name, SColorAttachment *colorAttachment, SDepthStencilAttachment *depthStencilAttachment)
 

Private Attributes

CDevice * m_Device = nullptr
 
DeviceObjectUID m_UID {INVALID_DEVICE_OBJECT_UID}
 
CColor m_ClearColor {}
 
uint32_t m_Width = 0
 
uint32_t m_Height = 0
 
uint32_t m_SampleCount = 0
 
AttachmentLoadOp m_ColorAttachmentLoadOp = AttachmentLoadOp::DONT_CARE
 
AttachmentStoreOp m_ColorAttachmentStoreOp = AttachmentStoreOp::DONT_CARE
 
AttachmentLoadOp m_DepthStencilAttachmentLoadOp = AttachmentLoadOp::DONT_CARE
 
AttachmentStoreOp m_DepthStencilAttachmentStoreOp = AttachmentStoreOp::DONT_CARE
 
VkRenderPass m_RenderPass = VK_NULL_HANDLE
 
VkFramebuffer m_Framebuffer = VK_NULL_HANDLE
 
ColorAttachments m_ColorAttachments
 
CTexture * m_DepthStencilAttachment = nullptr
 

Friends

class CDevice
 
class CSwapChain
 

Member Typedef Documentation

◆ ColorAttachments

Constructor & Destructor Documentation

◆ ~CFramebuffer()

Renderer::Backend::Vulkan::CFramebuffer::~CFramebuffer ( )
override

◆ CFramebuffer()

Renderer::Backend::Vulkan::CFramebuffer::CFramebuffer ( )
privatedefault

Member Function Documentation

◆ Create()

std::unique_ptr< CFramebuffer > Renderer::Backend::Vulkan::CFramebuffer::Create ( CDevice *  device,
const char *  name,
SColorAttachment *  colorAttachment,
SDepthStencilAttachment *  depthStencilAttachment 
)
staticprivate

◆ GetClearColor()

const CColor & Renderer::Backend::Vulkan::CFramebuffer::GetClearColor ( ) const
inlineoverridevirtual

Returns a clear color for all color attachments of the framebuffer.

See also
IDevice::CreateFramebuffer()

Implements Renderer::Backend::IFramebuffer.

◆ GetColorAttachmentLoadOp()

AttachmentLoadOp Renderer::Backend::Vulkan::CFramebuffer::GetColorAttachmentLoadOp ( ) const
inline

◆ GetColorAttachments()

const ColorAttachments & Renderer::Backend::Vulkan::CFramebuffer::GetColorAttachments ( )
inline

◆ GetColorAttachmentStoreOp()

AttachmentStoreOp Renderer::Backend::Vulkan::CFramebuffer::GetColorAttachmentStoreOp ( ) const
inline

◆ GetDepthStencilAttachment()

CTexture * Renderer::Backend::Vulkan::CFramebuffer::GetDepthStencilAttachment ( )
inline

◆ GetDepthStencilAttachmentLoadOp()

AttachmentLoadOp Renderer::Backend::Vulkan::CFramebuffer::GetDepthStencilAttachmentLoadOp ( ) const
inline

◆ GetDepthStencilAttachmentStoreOp()

AttachmentStoreOp Renderer::Backend::Vulkan::CFramebuffer::GetDepthStencilAttachmentStoreOp ( ) const
inline

◆ GetDevice()

IDevice * Renderer::Backend::Vulkan::CFramebuffer::GetDevice ( )
overridevirtual

◆ GetFramebuffer()

VkFramebuffer Renderer::Backend::Vulkan::CFramebuffer::GetFramebuffer ( ) const
inline

◆ GetHeight()

uint32_t Renderer::Backend::Vulkan::CFramebuffer::GetHeight ( ) const
inlineoverridevirtual

◆ GetRenderPass()

VkRenderPass Renderer::Backend::Vulkan::CFramebuffer::GetRenderPass ( ) const
inline

◆ GetSampleCount()

uint32_t Renderer::Backend::Vulkan::CFramebuffer::GetSampleCount ( ) const
inline

◆ GetUID()

DeviceObjectUID Renderer::Backend::Vulkan::CFramebuffer::GetUID ( ) const
inline

◆ GetWidth()

uint32_t Renderer::Backend::Vulkan::CFramebuffer::GetWidth ( ) const
inlineoverridevirtual

Friends And Related Function Documentation

◆ CDevice

friend class CDevice
friend

◆ CSwapChain

friend class CSwapChain
friend

Member Data Documentation

◆ m_ClearColor

CColor Renderer::Backend::Vulkan::CFramebuffer::m_ClearColor {}
private

◆ m_ColorAttachmentLoadOp

AttachmentLoadOp Renderer::Backend::Vulkan::CFramebuffer::m_ColorAttachmentLoadOp = AttachmentLoadOp::DONT_CARE
private

◆ m_ColorAttachments

ColorAttachments Renderer::Backend::Vulkan::CFramebuffer::m_ColorAttachments
private

◆ m_ColorAttachmentStoreOp

AttachmentStoreOp Renderer::Backend::Vulkan::CFramebuffer::m_ColorAttachmentStoreOp = AttachmentStoreOp::DONT_CARE
private

◆ m_DepthStencilAttachment

CTexture* Renderer::Backend::Vulkan::CFramebuffer::m_DepthStencilAttachment = nullptr
private

◆ m_DepthStencilAttachmentLoadOp

AttachmentLoadOp Renderer::Backend::Vulkan::CFramebuffer::m_DepthStencilAttachmentLoadOp = AttachmentLoadOp::DONT_CARE
private

◆ m_DepthStencilAttachmentStoreOp

AttachmentStoreOp Renderer::Backend::Vulkan::CFramebuffer::m_DepthStencilAttachmentStoreOp = AttachmentStoreOp::DONT_CARE
private

◆ m_Device

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

◆ m_Framebuffer

VkFramebuffer Renderer::Backend::Vulkan::CFramebuffer::m_Framebuffer = VK_NULL_HANDLE
private

◆ m_Height

uint32_t Renderer::Backend::Vulkan::CFramebuffer::m_Height = 0
private

◆ m_RenderPass

VkRenderPass Renderer::Backend::Vulkan::CFramebuffer::m_RenderPass = VK_NULL_HANDLE
private

◆ m_SampleCount

uint32_t Renderer::Backend::Vulkan::CFramebuffer::m_SampleCount = 0
private

◆ m_UID

DeviceObjectUID Renderer::Backend::Vulkan::CFramebuffer::m_UID {INVALID_DEVICE_OBJECT_UID}
private

◆ m_Width

uint32_t Renderer::Backend::Vulkan::CFramebuffer::m_Width = 0
private

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