Renderer/TextureInfo: Separate layerCount from size

This commit is contained in:
SirLynix
2022-11-30 08:51:31 +01:00
committed by Jérôme Leclercq
parent 1768f20365
commit 902dee6121
6 changed files with 82 additions and 79 deletions

View File

@@ -20,13 +20,14 @@ namespace Nz
case ImageType::E2D: return GL::TextureTarget::Target2D;
case ImageType::E2D_Array: return GL::TextureTarget::Target2D_Array;
case ImageType::E3D: return GL::TextureTarget::Target3D;
case ImageType::Cubemap: return GL::TextureTarget::Cubemap;
case ImageType::Cubemap: return GL::TextureTarget::Cubemap;
case ImageType::E1D:
case ImageType::E1D_Array:
default:
throw std::runtime_error("unsupported texture type");
// OpenGL ES doesn't support 1D textures, use 2D textures with a height of 1 instead
case ImageType::E1D: return GL::TextureTarget::Target2D;
case ImageType::E1D_Array: return GL::TextureTarget::Target2D_Array;
}
throw std::runtime_error("unsupported texture type");
}
}

View File

@@ -27,6 +27,7 @@ namespace Nz
ImageType type;
TextureUsageFlags usageFlags = TextureUsage::ShaderSampling | TextureUsage::TransferDestination;
UInt8 mipmapLevel = 1;
unsigned int layerCount = 1;
unsigned int depth = 1;
unsigned int height;
unsigned int width;

View File

@@ -41,7 +41,7 @@ namespace Nz
VulkanTexture& operator=(VulkanTexture&&) = delete;
private:
static void InitForFormat(PixelFormat pixelFormat, VkImageCreateInfo& createImage, VkImageViewCreateInfo& createImageView);
static void InitViewForFormat(PixelFormat pixelFormat, VkImageViewCreateInfo& createImageView);
VkImage m_image;
VmaAllocation m_allocation;