Files
ULRE/src/SceneGraph/Vulkan/Texture/VKTexture2DArrayLoader.cpp

44 lines
1.3 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include"VKTextureLoader.h"
#include<hgl/io/FileInputStream.h>
#include<hgl/log/LogInfo.h>
#include<hgl/graph/VKTexture.h>
#include<hgl/graph/module/TextureManager.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<> Texture2DArray *VkTextureLoader<Texture2DArray,Texture2DArrayLoader>::OnCreateTexture(TextureCreateInfo *tci)
//{
// return device->CreateTexture2DArray(tci);
//}
bool LoadTexture2DLayerFromFile(TextureManager *tm,Texture2DArray *ta,const uint32_t layer,const OSString &filename,bool auto_mipmaps)
{
if(!tm||filename.IsEmpty())
return(false);
//注依然是Texture2D则非Texture2DArray。因为这里LOAD的是2D纹理并不是2DArray纹理
VkTextureLoader<Texture2D,Texture2DLoader> loader(tm,auto_mipmaps);
if(!loader.Load(filename))
return(false);
DeviceBuffer *buf=loader.GetBuffer();
if(!buf)
return(false);
RectScope2ui scope;
scope.Width=ta->GetWidth();
scope.Height=ta->GetHeight();
return tm->ChangeTexture2DArray(ta,buf,scope,layer,1);
}
VK_NAMESPACE_END