2
3
4
5
9#include "Render/Vulkan/VulkanImage.h"
10#include "Render/Vulkan/VulkanRenderBackend.h"
11#include "Render/RendererResource/RendererResource.h"
19 uint32_t w = std::max(1.0f, glm::max(info.width, info.height) * info.sizeScale);
23 m_Resource = std::make_shared<VulkanImage>(
24 VulkanRenderBackend::GetState(),
30 info.description.samples,
31 info.description.format,
32 VK_IMAGE_TILING_OPTIMAL,
34 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
35 VK_IMAGE_USAGE_SAMPLED_BIT |
36 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT |
37 VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
38 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,
39 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
44 resourceptr->CreateImageView(info.description.format, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_ASPECT_COLOR_BIT);
46 if (info.usage & VK_IMAGE_USAGE_STORAGE_BIT)
48 resourceptr->TransitionImageLayout(
49 info.description.format,
50 VK_IMAGE_LAYOUT_UNDEFINED,
51 VK_IMAGE_LAYOUT_GENERAL
55 resourceptr->CreateSampler();
59 m_Resource = std::make_shared<VulkanImage>(
60 VulkanRenderBackend::GetState(),
66 info.description.samples,
67 info.description.format,
68 VK_IMAGE_TILING_OPTIMAL,
70 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT |
71 VK_IMAGE_USAGE_SAMPLED_BIT |
72 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
73 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,
74 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
79 resourceptr->CreateImageView(info.description.format, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_ASPECT_DEPTH_BIT);
81 resourceptr->TransitionImageLayout(
82 info.description.format,
83 VK_IMAGE_LAYOUT_UNDEFINED,
84 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
87 resourceptr->CreateSampler();
Texture2DCube(const RendererResourceCreateInfo &info)
Constructor Function. Used for create render resource.
Texture2DCube(const std::string &path)
Constructor Function. Init class variable, load date immediately. Usually call it.
Texture2DCube Class. This class defines the basic behaves of Texture2DCube.
static void Load(const std::string &fileName, Texture2DCube *outTexture)
Load image to a Texture2DCube object.
TextureLoader Class. This class only defines static function for load data from image file.
std::string m_ResourcePath
Texture's path in disk.
bool isDepthResource
True if this resource is a DepthResource.
This struct defines the data used to create a texture2d. From render pass.