10#include <wrl/client.h>
11using Microsoft::WRL::ComPtr;
13#include <dxc/WinAdapter.h>
28 const std::string& profile)
const {
30 log::engine::error(
"Shader compiler not initialised");
36 log::engine::error(
"Failed to load shader source: {}",
source);
51 std::vector<std::wstring>
args;
52 args.emplace_back(
L"-E");
53 args.emplace_back(
L"main");
54 args.emplace_back(
L"-T");
55 args.emplace_back(
CA2W(profile.c_str()));
56 args.emplace_back(
L"-spirv");
59 args.emplace_back(
L"-D_DEBUG");
60 args.emplace_back(
L"-Zi");
61 args.emplace_back(
L"-Qembed_debug");
72 log::engine::error(
"Failed to compile shader");
79 log::engine::error(
"Shader compilation errors/warnings:\n{}",
86 log::engine::error(
"Shader compilation failed");
Definition ShaderCompiler.hpp:17
ShaderCompiler()
Definition ShaderCompiler.hpp:19
bool compile_shader(const std::string &source, std::vector< uint32_t > &output, const std::string &profile) const
Definition ShaderCompiler.hpp:27
CComPtr< IDxcUtils > dxc_utils
Definition ShaderCompiler.hpp:102
CComPtr< IDxcCompiler3 > dxc_compiler
Definition ShaderCompiler.hpp:103
Definition Application.hpp:28
void engine_abort()
Definition base.hpp:46
CComPtr< IDxcUtils > g_dxc_utils
Definition ShaderCompiler.hpp:105
CComPtr< IDxcCompiler3 > g_dxc_compiler
Definition ShaderCompiler.hpp:106
constexpr T g_type_max
Definition types.hpp:21