#pragma once #include "../windows_headers.h" #include #include #include #include namespace D3D11::ShaderCompiler { template using ComPtr = Microsoft::WRL::ComPtr; enum class Type { Vertex, Geometry, Pixel, Compute }; ComPtr CompileShader(Type type, D3D_FEATURE_LEVEL feature_level, std::string_view code, bool debug); ComPtr CompileAndCreateVertexShader(ID3D11Device* device, std::string_view code, bool debug); ComPtr CompileAndCreateGeometryShader(ID3D11Device* device, std::string_view code, bool debug); ComPtr CompileAndCreatePixelShader(ID3D11Device* device, std::string_view code, bool debug); ComPtr CompileAndCreateComputeShader(ID3D11Device* device, std::string_view code, bool debug); }; // namespace D3D11::ShaderCompiler