| 13 | namespace |
| 14 | { |
| 15 | void AddShader(glslang::TProgram& program, glslang::TShader& shader, std::string_view source) |
| 16 | { |
| 17 | const std::array<const char*, 1> sources{source.data()}; |
| 18 | shader.setStrings(sources.data(), gsl::narrow_cast<int>(sources.size())); |
| 19 | shader.setEnvInput(glslang::EShSourceGlsl, shader.getStage(), glslang::EShClientVulkan, 100); |
| 20 | shader.setEnvClient(glslang::EShClientVulkan, glslang::EShTargetVulkan_1_0); |
| 21 | shader.setEnvTarget(glslang::EShTargetSpv, glslang::EShTargetSpv_1_0); |
| 22 | |
| 23 | if (!shader.parse(&DefaultTBuiltInResource, 450, false, EShMsgDefault)) |
| 24 | { |
| 25 | throw std::exception(); |
| 26 | } |
| 27 | |
| 28 | program.addShader(&shader); |
| 29 | } |
| 30 | |
| 31 | std::unique_ptr<spirv_cross::Compiler> CompileShader(glslang::TProgram& program, EShLanguage stage, std::string& glsl) |
| 32 | { |