Я пытаюсь загрузить файл шейдера с помощью функции D3DX11CompileFromFile (), когда я получаю ошибку HRESULT «Произошла неопределенная ошибка» (я использую DXGetErrorDescription () для отладки). Странно то, что я не могу найти ошибку, даже перечисленную в документации MSDN HRESULT. Я не уверен, в чем может быть проблема, потому что в последнее время моя Visual Studio 2010 C ++ Express действовала, давая мне кучу несвязанных с кодом ошибок. Кто-нибудь еще сталкивался с этой ошибкой, и если да, в чем была проблема?
Я только сделал несколько небольших изменений в программе, так как она в последний раз работала идеально. Я следую учебному пособию, чтобы можно было ожидать, что код будет правильным, но, видя, что я новичок, я перечислю измененные области, так как они работали в последний раз, на случай, если возникнет какая-то глупая ошибка.
.fx -file:
VS_OUTPUT VS(float4 inPos : POSITION, float4 inColor : COLOR)
{
VS_OUTPUT output;
output.Pos = inPos;
output.Color = inColor;
return output;
}
float4 PS(VS_OUTPUT input) : SV_TARGET
{
return input.Color;
}
Другой код, который был изменен:
struct Vertex //Overloaded Vertex Structure
{
Vertex(){}
Vertex(float x, float y, float z, float cr, float cg, float cb, float ca)
: pos(x,y,z), color(cr,cg,cb,ca){}
XMFLOAT3 pos;
XMFLOAT4 color;
};//the layout, one element for each variable in the vertex struct
D3D11_INPUT_ELEMENT_DESC layout[] =
{
{"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 },
{"COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0 },
};
UINT numElements = ARRAYSIZE(layout); //the number of elements
Я также добавил новые параметры в структуры вершин в том месте, где я их использую.
Задача ещё не решена.
Других решений пока нет …