Skip to content

Commit c486004

Browse files
committed
Fix inference of HLSL files by filename
1 parent 01334a4 commit c486004

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/nbl/asset/interchange/CHLSLLoader.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ SAssetBundle CHLSLLoader::loadAsset(system::IFile* _file, const IAssetLoader::SA
2626

2727

2828
const auto filename = _file->getFileName();
29-
std::filesystem::path extension = filename.extension();
29+
auto filenameEnding = filename.filename().string();
3030

3131
core::unordered_map<std::string,IShader::E_SHADER_STAGE> typeFromExt = {
3232
{".vert.hlsl",IShader::ESS_VERTEX},
@@ -36,11 +36,15 @@ SAssetBundle CHLSLLoader::loadAsset(system::IFile* _file, const IAssetLoader::SA
3636
{".frag.hlsl",IShader::ESS_FRAGMENT},
3737
{".comp.hlsl",IShader::ESS_COMPUTE}
3838
};
39-
auto found = typeFromExt.find(extension.string());
4039
auto shaderStage = IShader::ESS_UNKNOWN;
41-
if (found != typeFromExt.end())
42-
{
43-
shaderStage = found->second;
40+
for (auto& it : typeFromExt) {
41+
if (filenameEnding.size() <= it.first.size()) continue;
42+
auto stringPart = filenameEnding.substr(filenameEnding.size() - it.first.size());
43+
if (stringPart == it.first)
44+
{
45+
shaderStage = it.second;
46+
break;
47+
}
4448
}
4549

4650
auto shader = core::make_smart_refctd_ptr<ICPUShader>(reinterpret_cast<char*>(source), shaderStage, IShader::E_CONTENT_TYPE::ECT_HLSL, filename.string());

0 commit comments

Comments
 (0)