@@ -26,7 +26,7 @@ SAssetBundle CHLSLLoader::loadAsset(system::IFile* _file, const IAssetLoader::SA
26
26
27
27
28
28
const auto filename = _file->getFileName ();
29
- std::filesystem::path extension = filename.extension ();
29
+ auto filenameEnding = filename.filename (). string ();
30
30
31
31
core::unordered_map<std::string,IShader::E_SHADER_STAGE> typeFromExt = {
32
32
{" .vert.hlsl" ,IShader::ESS_VERTEX},
@@ -36,11 +36,15 @@ SAssetBundle CHLSLLoader::loadAsset(system::IFile* _file, const IAssetLoader::SA
36
36
{" .frag.hlsl" ,IShader::ESS_FRAGMENT},
37
37
{" .comp.hlsl" ,IShader::ESS_COMPUTE}
38
38
};
39
- auto found = typeFromExt.find (extension.string ());
40
39
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
+ }
44
48
}
45
49
46
50
auto shader = core::make_smart_refctd_ptr<ICPUShader>(reinterpret_cast <char *>(source), shaderStage, IShader::E_CONTENT_TYPE::ECT_HLSL, filename.string ());
0 commit comments