LoadTexture2DToArray OK! test ok!

This commit is contained in:
2023-09-25 20:32:12 +08:00
parent 65c3d5cad1
commit 9a7e711658
10 changed files with 327 additions and 19 deletions

View File

@@ -3,25 +3,36 @@
#include<hgl/log/LogInfo.h>
VK_NAMESPACE_BEGIN
template<> void VkTextureLoader<Texture2DArray,Texture2DArrayLoader>::OnExtent(VkExtent3D &extent)
{
extent.width =file_header.width;
extent.height =file_header.height;
extent.depth =file_header.layers;
}
//template<> void VkTextureLoader<Texture2DArray,Texture2DArrayLoader>::OnExtent(VkExtent3D &extent)
//{
// extent.width =file_header.width;
// extent.height =file_header.height;
// extent.depth =file_header.layers;
//}
//
//template<> Texture2DArray *VkTextureLoader<Texture2DArray,Texture2DArrayLoader>::OnCreateTexture(TextureCreateInfo *tci)
//{
// return device->CreateTexture2DArray(tci);
//}
template<> Texture2DArray *VkTextureLoader<Texture2DArray,Texture2DArrayLoader>::OnCreateTexture(TextureCreateInfo *tci)
bool LoadTexture2DLayerFromFile(GPUDevice *device,Texture2DArray *ta,const uint32_t layer,const OSString &filename,bool auto_mipmaps)
{
return device->CreateTexture2DArray(tci);
}
Texture2DArray *CreateTexture2DArrayFromFile(GPUDevice *device,const OSString &filename,bool auto_mipmaps)
{
VkTextureLoader<Texture2DArray,Texture2DArrayLoader> loader(device,auto_mipmaps);
//注依然是Texture2D则非Texture2DArray。因为这里LOAD的是2D纹理并不是2DArray纹理
VkTextureLoader<Texture2D,Texture2DLoader> loader(device,auto_mipmaps);
if(!loader.Load(filename))
return(nullptr);
return loader.CreateTexture();
DeviceBuffer *buf=loader.GetBuffer();
if(!buf)
return(false);
RectScope2ui scope;
scope.Width=ta->GetWidth();
scope.Height=ta->GetHeight();
return device->ChangeTexture2DArray(ta,buf,scope,layer,1);
}
VK_NAMESPACE_END