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
 
IDeviceGetDevice () override
 
const CColorGetClearColor () 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 ColorAttachmentsGetColorAttachments ()
 
CTextureGetDepthStencilAttachment ()
 
AttachmentLoadOp GetColorAttachmentLoadOp () const
 
AttachmentStoreOp GetColorAttachmentStoreOp () const
 
AttachmentLoadOp GetDepthStencilAttachmentLoadOp () const
 
AttachmentStoreOp GetDepthStencilAttachmentStoreOp () const
 
DeviceObjectUID GetUID () const
 
virtual const CColorGetClearColor () 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 IDeviceGetDevice ()=0
 
TAs ()
 

Private Member Functions

 CFramebuffer ()=default
 

Static Private Member Functions

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

Private Attributes

CDevicem_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
 
CTexturem_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: