Не компилируется шейдер DirectX 11

имеется подгрузка шейдера из файла

hr = m_compileshaderfromfile(const_cast<wchar_t*>(L"shader.fx"), "VS", "vs_4_0", &pVSBlob);
if (FAILED(hr))
{
    std::cerr << "Cannot compile shader.fx ----------- VS" << std::endl;
    return 0;
}

При запуске приложение сразу же закрывается с кодом 0x0. В консоли отображается данное сообщение:

Cannot compile shader.fx ----------- VS

Вызов функции определен так:

class MyRender : public Render
{
private:
    HRESULT m_compileshaderfromfile(WCHAR* FileName, LPCSTR EntryPoint, LPCSTR ShaderModel, ID3DBlob** ppBlobOut);

И сама функция:

HRESULT MyRender::m_compileshaderfromfile(WCHAR* FileName, LPCSTR EntryPoint, LPCSTR ShaderModel, ID3DBlob** ppBlobOut)
{
    HRESULT hr = S_OK;
    DWORD ShaderFlags = D3DCOMPILE_ENABLE_STRICTNESS;
#if defined( DEBUG ) || defined( _DEBUG )
    ShaderFlags |= D3DCOMPILE_DEBUG;
#endif
    ID3DBlob* pErrorBlob;
    hr = D3DX11CompileFromFile(FileName, NULL, NULL, EntryPoint, ShaderModel, ShaderFlags, 0, NULL, ppBlobOut, &pErrorBlob, NULL);
    if (FAILED(hr) && pErrorBlob != NULL) OutputDebugStringA((char*)pErrorBlob->GetBufferPointer());
    _RELEASE(pErrorBlob);
    return hr;
}

Шейдер shader.fx. Лежит в папке с запускаемым файлом. Содержит:

cbuffer ConstantBuffer
{
    matrix World;
    matrix View;
    matrix Projection;
}

struct VS_OUTPUT
{
    float4 Pos : SV_POSITION;
    float4 Color : COLOR0;
};

VS_OUTPUT VS( float4 Pos : POSITION, float4 Color : COLOR )
{
    VS_OUTPUT output = (VS_OUTPUT)0;
    output.Pos = mul( Pos, World );
    output.Pos = mul( output.Pos, View );
    output.Pos = mul( output.Pos, Projection );
    output.Color = Color;
    return output;
}

float4 PS( VS_OUTPUT input ) : SV_Target
{
    return input.Color;
}

Попробовал поместить шейдер в корень C:, результат тот же


Ответы (0 шт):