Я использую SharpDX для создания базовой программы DirectX на C#. Я пытаюсь передать некоторые данные в шейдеры, используя постоянный буфер, однако, когда я создаю буфер, DirectX падает с неправильным параметром. Включение слоя отладки не дает мне больше информации. Мой код выглядит следующим образом:SharpDX - Создание постоянных аварийных буферов
consts = new ConstantBufferData() { fTime = 0.0f };
constantBuffer = D3D11.Buffer.Create<ConstantBufferData>(device, D3D11.BindFlags.ConstantBuffer, ref consts);
где ConstantBufferData это структура определяется следующим образом:
[StructLayout(LayoutKind.Sequential)]
struct ConstantBufferData
{
public float fTime;
};
Как ни странно, вся программа компилируется и функционирует нормально, когда я создаю буфер в качестве буфера вершин, но использование это как постоянный буфер с context.PixelShader.SetConstantBuffer(0, constantBuffer);
.
вы создаете свой буфер на стеке, я не знаю SharpDX, но я предполагаю, что это не предназначено –