SleakEngine 1.0.0
C++23 multi-backend game engine
Loading...
Searching...
No Matches
Sleak::RenderEngine::VulkanTexture Class Reference

Vulkan 2D texture: image + view + sampler, with per-swapchain-image descriptor sets. More...

#include <VulkanTexture.hpp>

Inheritance diagram for Sleak::RenderEngine::VulkanTexture:

Public Member Functions

 VulkanTexture (VkDevice device, VkPhysicalDevice physicalDevice, VkCommandPool commandPool, VkQueue graphicsQueue)
 ~VulkanTexture () override
void Bind (uint32_t slot=0) const override
const std::vector< VkDescriptorSet > & GetDescriptorSets () const
TextureFormat GetFormat () const override
uint32_t GetHeight () const override
VkImageView GetImageView () const
uint64_t GetImGuiTextureID () const override
float GetLodBias () const override
VkSampler GetSampler () const
TextureType GetType () const override
uint32_t GetWidth () const override
bool HasDescriptorSets () const
bool LoadFromFile (const std::string &filePath) override
 Decodes an image file and uploads it as a new Vulkan image.
bool LoadFromMemory (const void *data, uint32_t width, uint32_t height, TextureFormat format) override
 Uploads raw pixel data through a staging buffer and generates mips.
void SetDescriptorSets (std::vector< VkDescriptorSet > sets)
void SetFilter (TextureFilter filter) override
void SetLodBias (float bias) override
void SetMaxMipLevels (uint32_t levels)
void SetWrapMode (TextureWrapMode wrapMode) override
void Unbind () const override
Public Member Functions inherited from Sleak::Texture
virtual ~Texture ()=default

Detailed Description

Vulkan 2D texture: image + view + sampler, with per-swapchain-image descriptor sets.

Definition at line 12 of file VulkanTexture.hpp.

Constructor & Destructor Documentation

◆ VulkanTexture()

Sleak::RenderEngine::VulkanTexture::VulkanTexture ( VkDevice device,
VkPhysicalDevice physicalDevice,
VkCommandPool commandPool,
VkQueue graphicsQueue )

Definition at line 12 of file VulkanTexture.cpp.

◆ ~VulkanTexture()

Sleak::RenderEngine::VulkanTexture::~VulkanTexture ( )
override

Definition at line 21 of file VulkanTexture.cpp.

Member Function Documentation

◆ Bind()

void Sleak::RenderEngine::VulkanTexture::Bind ( uint32_t slot = 0) const
overridevirtual

Implements Sleak::Texture.

Definition at line 207 of file VulkanTexture.cpp.

◆ GetDescriptorSets()

const std::vector< VkDescriptorSet > & Sleak::RenderEngine::VulkanTexture::GetDescriptorSets ( ) const
inline

Definition at line 48 of file VulkanTexture.hpp.

◆ GetFormat()

TextureFormat Sleak::RenderEngine::VulkanTexture::GetFormat ( ) const
inlineoverridevirtual

Implements Sleak::Texture.

Definition at line 38 of file VulkanTexture.hpp.

◆ GetHeight()

uint32_t Sleak::RenderEngine::VulkanTexture::GetHeight ( ) const
inlineoverridevirtual

Implements Sleak::Texture.

Definition at line 37 of file VulkanTexture.hpp.

◆ GetImageView()

VkImageView Sleak::RenderEngine::VulkanTexture::GetImageView ( ) const
inline

Definition at line 43 of file VulkanTexture.hpp.

◆ GetImGuiTextureID()

uint64_t Sleak::RenderEngine::VulkanTexture::GetImGuiTextureID ( ) const
overridevirtual

Reimplemented from Sleak::Texture.

Definition at line 269 of file VulkanTexture.cpp.

◆ GetLodBias()

float Sleak::RenderEngine::VulkanTexture::GetLodBias ( ) const
inlineoverridevirtual

Reimplemented from Sleak::Texture.

Definition at line 30 of file VulkanTexture.hpp.

◆ GetSampler()

VkSampler Sleak::RenderEngine::VulkanTexture::GetSampler ( ) const
inline

Definition at line 44 of file VulkanTexture.hpp.

◆ GetType()

TextureType Sleak::RenderEngine::VulkanTexture::GetType ( ) const
inlineoverridevirtual

Implements Sleak::Texture.

Definition at line 39 of file VulkanTexture.hpp.

◆ GetWidth()

uint32_t Sleak::RenderEngine::VulkanTexture::GetWidth ( ) const
inlineoverridevirtual

Implements Sleak::Texture.

Definition at line 36 of file VulkanTexture.hpp.

◆ HasDescriptorSets()

bool Sleak::RenderEngine::VulkanTexture::HasDescriptorSets ( ) const
inline

Definition at line 49 of file VulkanTexture.hpp.

◆ LoadFromFile()

bool Sleak::RenderEngine::VulkanTexture::LoadFromFile ( const std::string & filePath)
overridevirtual

Decodes an image file and uploads it as a new Vulkan image.

Implements Sleak::Texture.

Definition at line 191 of file VulkanTexture.cpp.

◆ LoadFromMemory()

bool Sleak::RenderEngine::VulkanTexture::LoadFromMemory ( const void * data,
uint32_t width,
uint32_t height,
TextureFormat format )
overridevirtual

Uploads raw pixel data through a staging buffer and generates mips.

Implements Sleak::Texture.

Definition at line 25 of file VulkanTexture.cpp.

◆ SetDescriptorSets()

void Sleak::RenderEngine::VulkanTexture::SetDescriptorSets ( std::vector< VkDescriptorSet > sets)
inline

Definition at line 47 of file VulkanTexture.hpp.

◆ SetFilter()

void Sleak::RenderEngine::VulkanTexture::SetFilter ( TextureFilter filter)
overridevirtual

Implements Sleak::Texture.

Definition at line 216 of file VulkanTexture.cpp.

◆ SetLodBias()

void Sleak::RenderEngine::VulkanTexture::SetLodBias ( float bias)
overridevirtual

Reimplemented from Sleak::Texture.

Definition at line 236 of file VulkanTexture.cpp.

◆ SetMaxMipLevels()

void Sleak::RenderEngine::VulkanTexture::SetMaxMipLevels ( uint32_t levels)
inline

Definition at line 34 of file VulkanTexture.hpp.

◆ SetWrapMode()

void Sleak::RenderEngine::VulkanTexture::SetWrapMode ( TextureWrapMode wrapMode)
overridevirtual

Implements Sleak::Texture.

Definition at line 226 of file VulkanTexture.cpp.

◆ Unbind()

void Sleak::RenderEngine::VulkanTexture::Unbind ( ) const
overridevirtual

Implements Sleak::Texture.

Definition at line 212 of file VulkanTexture.cpp.