#pragma once #include "YBaseLib/Windows/WindowsHeaders.h" #include #include #include #include namespace D3D11::ShaderCompiler { template using ComPtr = Microsoft::WRL::ComPtr; enum class Type { Vertex, 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 CompileAndCreatePixelShader(ID3D11Device* device, std::string_view code, bool debug); ComPtr CompileAndCreateComputeShader(ID3D11Device* device, std::string_view code, bool debug); }; // namespace D3D11::ShaderCompiler