Archived
1
Fork 0

Use the to_language parameter instead of choosing by platform

This commit is contained in:
redstrate 2020-08-15 20:35:46 -04:00
parent 6db47e272f
commit f50852abeb

View file

@ -97,21 +97,26 @@ std::optional<ShaderSource> ShaderCompiler::compile(const ShaderLanguage from_la
return std::nullopt;
}
#ifdef PLATFORM_MACOS
spirv_cross::CompilerMSL msl(std::move(spirv));
switch(to_language) {
case ShaderLanguage::MSL:
{
spirv_cross::CompilerMSL msl(std::move(spirv));
spirv_cross::CompilerMSL::Options opts;
if(options.is_apple_mobile) {
opts.platform = spirv_cross::CompilerMSL::Options::Platform::macOS;
} else {
opts.platform = spirv_cross::CompilerMSL::Options::Platform::iOS;
spirv_cross::CompilerMSL::Options opts;
if(options.is_apple_mobile) {
opts.platform = spirv_cross::CompilerMSL::Options::Platform::macOS;
} else {
opts.platform = spirv_cross::CompilerMSL::Options::Platform::iOS;
}
opts.enable_decoration_binding = true;
msl.set_msl_options(opts);
return msl.compile();
}
case ShaderLanguage::SPIRV:
return spirv;
default:
return {};
}
opts.enable_decoration_binding = true;
msl.set_msl_options(opts);
return msl.compile();
#else
return spirv;
#endif
}