25 bool compile(
const std::string& shaderPath)
override;
27 bool compile(
const std::string& vertPath,
28 const std::string& fragPath)
override;
39 bool compileShader(
const std::string& filePath,
40 const std::string& entryPoint,
41 const std::string& profile,
42 Microsoft::WRL::ComPtr<T>& shader,
43 Microsoft::WRL::ComPtr<ID3DBlob>& blob);
46 Microsoft::WRL::ComPtr<ID3D11Device> m_device;
47 Microsoft::WRL::ComPtr<ID3D11DeviceContext> m_deviceContext;
49 Microsoft::WRL::ComPtr<ID3D11VertexShader> m_vertexShader;
50 Microsoft::WRL::ComPtr<ID3D11PixelShader> m_pixelShader;
51 Microsoft::WRL::ComPtr<ID3D11InputLayout> Layout;
53 Microsoft::WRL::ComPtr<ID3DBlob>
55 Microsoft::WRL::ComPtr<ID3DBlob> m_pixelShaderBlob;
57 D3D11_INPUT_ELEMENT_DESC DefaultLayout[5] = {
59 {
"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0},
60 {
"NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0},
61 {
"TANGENT", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 24, D3D11_INPUT_PER_VERTEX_DATA, 0},
62 {
"COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 40, D3D11_INPUT_PER_VERTEX_DATA, 0},
63 {
"TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 56, D3D11_INPUT_PER_VERTEX_DATA, 0}
66 D3D11_INPUT_ELEMENT_DESC SkinnedLayout[7] = {
67 {
"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0},
68 {
"NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0},
69 {
"TANGENT", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 24, D3D11_INPUT_PER_VERTEX_DATA, 0},
70 {
"COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 40, D3D11_INPUT_PER_VERTEX_DATA, 0},
71 {
"TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 56, D3D11_INPUT_PER_VERTEX_DATA, 0},
72 {
"BLENDINDICES", 0, DXGI_FORMAT_R32G32B32A32_SINT, 0, 64, D3D11_INPUT_PER_VERTEX_DATA, 0},
73 {
"BLENDWEIGHT", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 80, D3D11_INPUT_PER_VERTEX_DATA, 0}