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

Loads image R16G16B16_SFLOAT file formats exmplae file format : .hdr. More...

#include <HDRImage.h>

Inherits Fling::Resource.

Public Member Functions

 HDRImage (Guid t_ID, LogicalDevice *t_dev, void *t_Data=nullptr)
 
virtual ~HDRImage ()
 
FORCEINLINE UINT32 GetWidth () const
 
FORCEINLINE UINT32 GetHeight () const
 
FORCEINLINE INT32 GetChannels () const
 
FORCEINLINE UINT32 GetMipLevels () const
 
FORCEINLINE const VkImage & GetVkImage () const
 
FORCEINLINE const VkImageView & GetVkImageView () const
 
FORCEINLINE const VkSampler & GetSampler () const
 
FORCEINLINE VkDescriptorImageInfo * GetDescriptorInfo ()
 
FORCEINLINE const VkFormat & GetVkImageFormat () const
 
UINT64 GetImageSize () const
 Get the Image Size object Multiply by 2 * 3 because there are 3 channels that are 2 bytes each Each channel is represented as a signed 16 (bit) float. More...
 
const float * GetPixelData () const
 Get the Pixel Data as signed floats. More...
 
void Release ()
 
- Public Member Functions inherited from Fling::Resource
 Resource (Fling::Guid t_ID)
 
virtual ~Resource ()=default
 
Fling::Guid_Handle GetGuidHandle () const
 Get GUID handle (just an int) for this resources guid. More...
 
const std::string & GetGuidString () const
 Get the human-readable string representation of this GUID. More...
 
std::string GetFilepathReleativeToAssets () const
 Returns the full file path that is relative to the assets path based on the GUID of this resource. More...
 

Static Public Member Functions

static std::shared_ptr< Fling::HDRImageCreate (Guid t_ID, LogicalDevice *t_dev, void *t_Data=nullptr)
 

Private Member Functions

void LoadVulkanImage ()
 
void CreateImageView ()
 
void CreateTextureSampler ()
 
void CopyBufferToImage (VkBuffer t_Buffer)
 
void GenerateMipMaps (VkFormat t_ImageFormat)
 

Private Attributes

const LogicalDevicem_Device
 
VkImage m_Image
 
VkImageView m_ImageView
 
VkSampler m_TextureSampler
 
VkDeviceMemory m_Memory
 
VkDescriptorImageInfo m_ImageInfo = {}
 
float * m_PixelData
 
VkFormat m_Format = VK_FORMAT_R16G16B16_SFLOAT
 
UINT32 m_Width = 0
 
UINT32 m_Height = 0
 
UINT32 m_MipLevels = 0
 
INT32 m_Channels = 0
 

Additional Inherited Members

- Protected Attributes inherited from Fling::Resource
Fling::Guid m_Guid
 
std::string m_HumanReadableName
 

Detailed Description

Loads image R16G16B16_SFLOAT file formats exmplae file format : .hdr.

Constructor & Destructor Documentation

◆ HDRImage()

Fling::HDRImage::HDRImage ( Guid  t_ID,
LogicalDevice t_dev,
void *  t_Data = nullptr 
)
explicit

◆ ~HDRImage()

Fling::HDRImage::~HDRImage ( )
virtual

Member Function Documentation

◆ CopyBufferToImage()

void Fling::HDRImage::CopyBufferToImage ( VkBuffer  t_Buffer)
private

◆ Create()

std::shared_ptr< Fling::HDRImage > Fling::HDRImage::Create ( Guid  t_ID,
LogicalDevice t_dev,
void *  t_Data = nullptr 
)
static

◆ CreateImageView()

void Fling::HDRImage::CreateImageView ( )
private

◆ CreateTextureSampler()

void Fling::HDRImage::CreateTextureSampler ( )
private

◆ GenerateMipMaps()

void Fling::HDRImage::GenerateMipMaps ( VkFormat  t_ImageFormat)
private

◆ GetChannels()

FORCEINLINE INT32 Fling::HDRImage::GetChannels ( ) const
inline

◆ GetDescriptorInfo()

FORCEINLINE VkDescriptorImageInfo* Fling::HDRImage::GetDescriptorInfo ( )
inline

◆ GetHeight()

FORCEINLINE UINT32 Fling::HDRImage::GetHeight ( ) const
inline

◆ GetImageSize()

UINT64 Fling::HDRImage::GetImageSize ( ) const
inline

Get the Image Size object Multiply by 2 * 3 because there are 3 channels that are 2 bytes each Each channel is represented as a signed 16 (bit) float.

Returns
UINT64

◆ GetMipLevels()

FORCEINLINE UINT32 Fling::HDRImage::GetMipLevels ( ) const
inline

◆ GetPixelData()

const float* Fling::HDRImage::GetPixelData ( ) const
inline

Get the Pixel Data as signed floats.

Returns
const float*

◆ GetSampler()

FORCEINLINE const VkSampler& Fling::HDRImage::GetSampler ( ) const
inline

◆ GetVkImage()

FORCEINLINE const VkImage& Fling::HDRImage::GetVkImage ( ) const
inline

◆ GetVkImageFormat()

FORCEINLINE const VkFormat& Fling::HDRImage::GetVkImageFormat ( ) const
inline

◆ GetVkImageView()

FORCEINLINE const VkImageView& Fling::HDRImage::GetVkImageView ( ) const
inline

◆ GetWidth()

FORCEINLINE UINT32 Fling::HDRImage::GetWidth ( ) const
inline

◆ LoadVulkanImage()

void Fling::HDRImage::LoadVulkanImage ( )
private

◆ Release()

void Fling::HDRImage::Release ( )

Field Documentation

◆ m_Channels

INT32 Fling::HDRImage::m_Channels = 0
private

◆ m_Device

const LogicalDevice* Fling::HDRImage::m_Device
private

◆ m_Format

VkFormat Fling::HDRImage::m_Format = VK_FORMAT_R16G16B16_SFLOAT
private

◆ m_Height

UINT32 Fling::HDRImage::m_Height = 0
private

◆ m_Image

VkImage Fling::HDRImage::m_Image
private

◆ m_ImageInfo

VkDescriptorImageInfo Fling::HDRImage::m_ImageInfo = {}
private

◆ m_ImageView

VkImageView Fling::HDRImage::m_ImageView
private

◆ m_Memory

VkDeviceMemory Fling::HDRImage::m_Memory
private

◆ m_MipLevels

UINT32 Fling::HDRImage::m_MipLevels = 0
private

◆ m_PixelData

float* Fling::HDRImage::m_PixelData
private

◆ m_TextureSampler

VkSampler Fling::HDRImage::m_TextureSampler
private

◆ m_Width

UINT32 Fling::HDRImage::m_Width = 0
private

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