15#define GLFW_INCLUDE_VULKAN
16#include <GLFW/glfw3.h>
18#define GLM_FORCE_RADIANS
19#define GLM_FORCE_DEPTH_ZERO_TO_ONE
20#include <glm/vec4.hpp>
21#include <glm/mat4x4.hpp>
25#define GLM_FORCE_RADIANS
26#define GLM_FORCE_DEPTH_ZERO_TO_ONE
28#include <glm/gtc/matrix_transform.hpp>
105 void CreateVulkanImage(uint32_t width, uint32_t height, std::uint32_t mipmapLevels, VkSampleCountFlagBits numSamples, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage,
106 VkMemoryPropertyFlags properties, VkImage& image, VkDeviceMemory& imageMemory);
108 VkImageView
CreateImageView(VkImage image, VkFormat format, VkImageAspectFlags aspectFlags, std::uint32_t mipmapLevels);
Interface for backend-specific GPU texture resource management.
Represents raw 2D image data stored in memory.
Vulkan-based implementation of the IRenderer interface.
Vulkan-specific implementation of ITextureRenderResources.
VulkanTextureResources(VulkanRenderer *renderer)
Vulkan-specific implementation of ITextureRenderResources.
size_t GetSizeInGPUBytes() const override
Returns the size of the texture in GPU memory in bytes.
VkImageView GetVkImageView() const
Returns the Vulkan image view associated with this texture resource.
VkImageView CreateImageView(VkImage image, VkFormat format, VkImageAspectFlags aspectFlags, std::uint32_t mipmapLevels)
bool IsTextureLoadedInGPU() override
Checks if the texture is currently loaded in GPU memory.
void LoadToGPU(const ImageData &data) override
Uploads the texture data from CPU to GPU memory using Vulkan.
void CreateTextureImage()
VulkanRenderer * mRenderer
void CreateTextureImageView()
bool bIsTextureLoadedInGPU
void CreateTextureSampler()
VkSampler GetVkSampler() const
Returns the Vulkan sampler associated with this texture resource.
void ReleaseFromGPU() override
Releases the texture data from GPU memory using Vulkan.
VkSampler mTextureSampler
VkImageView mTextureImageView
VkDeviceMemory mTextureImageMemory
void CreateVulkanImage(uint32_t width, uint32_t height, std::uint32_t mipmapLevels, VkSampleCountFlagBits numSamples, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, VkMemoryPropertyFlags properties, VkImage &image, VkDeviceMemory &imageMemory)
const ImageData * mImageData
std::uint32_t mMipmapLevels
VkDeviceSize mGpuMemorySize