Fling Engine  0.00.1
Fling Engine is a game engine written in Vulkan
Public Member Functions | Private Member Functions | Private Attributes
Fling::Cubemap Class Reference

#include <Cubemap.h>

Public Member Functions

 Cubemap (Guid t_PosX_ID, Guid t_NegX_ID, Guid t_PosY_ID, Guid t_NegY_ID, Guid t_PosZ_ID, Guid t_NegZ_ID, Guid t_VertexShader, Guid t_FragShader, VkRenderPass t_RenderPass, LogicalDevice *t_LogicalDevice)
 
 Cubemap (Guid t_CubeMap_ID, VkRenderPass t_Renderpass, VkDevice t_LogicalDevice)
 
 ~Cubemap ()
 
void Init (Camera *t_Camera, UINT32 t_CurrentImage, size_t t_NumeFramesInFlight, Multisampler *t_Sampler)
 
void UpdateUniformBuffer (UINT32 t_CurrentImage, const glm::mat4 &t_ProjectionMatrix, const glm::mat4 &t_ViewMatrix)
 
void BindCmdBuffer (VkCommandBuffer &t_CommandBuffer)
 
std::unique_ptr< GraphicsPipelineGetGraphicsPipeline () const
 
VkDescriptorSet & GetDescriptorSet ()
 Get the Descriptor Sets object. More...
 
BufferGetVertexBuffer () const
 Get the Vertex Buffer object. More...
 
BufferGetIndexBuffer () const
 Get the Index Buffer object. More...
 
UINT32 GetIndexCount () const
 Get the Index Count object. More...
 
VkIndexType GetIndexType () const
 
VkImage GetImage () const
 
VkDeviceMemory GetImageMemory () const
 
VkDescriptorImageInfo & GetImageInfo ()
 

Private Member Functions

void PreparePipeline (Multisampler *t_Sampler)
 
void LoadCubeMapImage (Guid t_CubeMap_ID)
 Loads cubemaps with file format .hdr for ibl. More...
 
void LoadCubemapImages (Guid t_PosX_ID, Guid t_NegX_ID, Guid t_PosY_ID, Guid t_NegY_ID, Guid t_PosZ_ID, Guid t_NegZ_ID)
 
void SetupDescriptors ()
 

Private Attributes

std::vector< Texturem_cubeMapImages
 
std::vector< std::shared_ptr< class Buffer > > m_UniformBuffers
 
VkImage m_Image
 
VkImageView m_Imageview
 
VkImageLayout m_ImageLayout
 
VkDeviceMemory m_ImageMemory
 
VkSampler m_Sampler
 
VkDescriptorSetLayout m_DescriptorSetLayout
 
VkDescriptorImageInfo m_DescriptorImageInfo
 
VkDescriptorSet m_DescriptorSet
 
VkDescriptorPool m_DescriptorPool
 
VkRenderPass m_RenderPass
 
LogicalDevicem_Device
 
VkDescriptorBufferInfo m_UniformBufferDescriptor
 
VkDeviceSize m_ImageSize
 
VkDeviceSize m_LayerSize
 
VkFormat m_Format
 
UINT32 m_NumChannels
 
UINT32 m_MipLevels
 
size_t m_numsFrameInFlight
 
UboSkyboxVS m_UboVS
 
std::shared_ptr< Modelm_Cube
 
GraphicsPipelinem_GraphicsPipeline
 
Guid m_FragShader
 
Guid m_VertexShader
 

Constructor & Destructor Documentation

◆ Cubemap() [1/2]

Fling::Cubemap::Cubemap ( Guid  t_PosX_ID,
Guid  t_NegX_ID,
Guid  t_PosY_ID,
Guid  t_NegY_ID,
Guid  t_PosZ_ID,
Guid  t_NegZ_ID,
Guid  t_VertexShader,
Guid  t_FragShader,
VkRenderPass  t_RenderPass,
LogicalDevice t_LogicalDevice 
)

◆ Cubemap() [2/2]

Fling::Cubemap::Cubemap ( Guid  t_CubeMap_ID,
VkRenderPass  t_Renderpass,
VkDevice  t_LogicalDevice 
)

◆ ~Cubemap()

Fling::Cubemap::~Cubemap ( )

Member Function Documentation

◆ BindCmdBuffer()

void Fling::Cubemap::BindCmdBuffer ( VkCommandBuffer &  t_CommandBuffer)

◆ GetDescriptorSet()

VkDescriptorSet& Fling::Cubemap::GetDescriptorSet ( )
inline

Get the Descriptor Sets object.

Returns
const VkDescriptorSet>

◆ GetGraphicsPipeline()

std::unique_ptr<GraphicsPipeline> Fling::Cubemap::GetGraphicsPipeline ( ) const
inline

◆ GetImage()

VkImage Fling::Cubemap::GetImage ( ) const
inline

◆ GetImageInfo()

VkDescriptorImageInfo& Fling::Cubemap::GetImageInfo ( )
inline

◆ GetImageMemory()

VkDeviceMemory Fling::Cubemap::GetImageMemory ( ) const
inline

◆ GetIndexBuffer()

Buffer* Fling::Cubemap::GetIndexBuffer ( ) const
inline

Get the Index Buffer object.

Returns
const Buffer*

◆ GetIndexCount()

UINT32 Fling::Cubemap::GetIndexCount ( ) const
inline

Get the Index Count object.

Returns
const UINT32

◆ GetIndexType()

VkIndexType Fling::Cubemap::GetIndexType ( ) const
inline

◆ GetVertexBuffer()

Buffer* Fling::Cubemap::GetVertexBuffer ( ) const
inline

Get the Vertex Buffer object.

Returns
const Buffer*

◆ Init()

void Fling::Cubemap::Init ( Camera t_Camera,
UINT32  t_CurrentImage,
size_t  t_NumeFramesInFlight,
Multisampler t_Sampler 
)

◆ LoadCubeMapImage()

void Fling::Cubemap::LoadCubeMapImage ( Guid  t_CubeMap_ID)
private

Loads cubemaps with file format .hdr for ibl.

◆ LoadCubemapImages()

void Fling::Cubemap::LoadCubemapImages ( Guid  t_PosX_ID,
Guid  t_NegX_ID,
Guid  t_PosY_ID,
Guid  t_NegY_ID,
Guid  t_PosZ_ID,
Guid  t_NegZ_ID 
)
private

◆ PreparePipeline()

void Fling::Cubemap::PreparePipeline ( Multisampler t_Sampler)
private

◆ SetupDescriptors()

void Fling::Cubemap::SetupDescriptors ( )
private

◆ UpdateUniformBuffer()

void Fling::Cubemap::UpdateUniformBuffer ( UINT32  t_CurrentImage,
const glm::mat4 &  t_ProjectionMatrix,
const glm::mat4 &  t_ViewMatrix 
)

Field Documentation

◆ m_Cube

std::shared_ptr<Model> Fling::Cubemap::m_Cube
private

◆ m_cubeMapImages

std::vector<Texture> Fling::Cubemap::m_cubeMapImages
private

◆ m_DescriptorImageInfo

VkDescriptorImageInfo Fling::Cubemap::m_DescriptorImageInfo
private

◆ m_DescriptorPool

VkDescriptorPool Fling::Cubemap::m_DescriptorPool
private

◆ m_DescriptorSet

VkDescriptorSet Fling::Cubemap::m_DescriptorSet
private

◆ m_DescriptorSetLayout

VkDescriptorSetLayout Fling::Cubemap::m_DescriptorSetLayout
private

◆ m_Device

LogicalDevice* Fling::Cubemap::m_Device
private

◆ m_Format

VkFormat Fling::Cubemap::m_Format
private

◆ m_FragShader

Guid Fling::Cubemap::m_FragShader
private

◆ m_GraphicsPipeline

GraphicsPipeline* Fling::Cubemap::m_GraphicsPipeline
private

◆ m_Image

VkImage Fling::Cubemap::m_Image
private

◆ m_ImageLayout

VkImageLayout Fling::Cubemap::m_ImageLayout
private

◆ m_ImageMemory

VkDeviceMemory Fling::Cubemap::m_ImageMemory
private

◆ m_ImageSize

VkDeviceSize Fling::Cubemap::m_ImageSize
private

◆ m_Imageview

VkImageView Fling::Cubemap::m_Imageview
private

◆ m_LayerSize

VkDeviceSize Fling::Cubemap::m_LayerSize
private

◆ m_MipLevels

UINT32 Fling::Cubemap::m_MipLevels
private

◆ m_NumChannels

UINT32 Fling::Cubemap::m_NumChannels
private

◆ m_numsFrameInFlight

size_t Fling::Cubemap::m_numsFrameInFlight
private

◆ m_RenderPass

VkRenderPass Fling::Cubemap::m_RenderPass
private

◆ m_Sampler

VkSampler Fling::Cubemap::m_Sampler
private

◆ m_UboVS

UboSkyboxVS Fling::Cubemap::m_UboVS
private

◆ m_UniformBufferDescriptor

VkDescriptorBufferInfo Fling::Cubemap::m_UniformBufferDescriptor
private

◆ m_UniformBuffers

std::vector<std::shared_ptr<class Buffer> > Fling::Cubemap::m_UniformBuffers
private

◆ m_VertexShader

Guid Fling::Cubemap::m_VertexShader
private

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