I do have a question and that is. Why does min buffer become null. When I include
StructuredBuffer.BindFlags |= D3D11_BIND_UNORDERED_ACCESS;
bool StructuredBufferD3D11::Initialize(ID3D11Device* device, UINT sizeOfElement, size_t nrOfElementsInBuffer, void* bufferData, bool dynamic)
{
elementSize = sizeOfElement;
nrOfElements = nrOfElementsInBuffer;
D3D11_BUFFER_DESC StructuredBuffer;
StructuredBuffer.ByteWidth = elementSize * nrOfElements;
StructuredBuffer.Usage = dynamic ? D3D11_USAGE_DYNAMIC: D3D11_USAGE_IMMUTABLE;
StructuredBuffer.BindFlags = D3D11_BIND_SHADER_RESOURCE; // D3D11_BIND_SHADER_RESOURCE
StructuredBuffer.BindFlags |= D3D11_BIND_UNORDERED_ACCESS; // D3D11_BIND_SHADER_RESOURCE
StructuredBuffer.CPUAccessFlags = dynamic ? D3D11_CPU_ACCESS_WRITE: 0;
StructuredBuffer.MiscFlags = D3D11_RESOURCE_MISC_BUFFER_STRUCTURED;
StructuredBuffer.StructureByteStride = sizeOfElement;
HRESULT hr = S_OK;
if (bufferData != nullptr)
{
D3D11_SUBRESOURCE_DATA data;
data.pSysMem = bufferData;
data.SysMemPitch = 0;
data.SysMemSlicePitch = 0;
hr = device->CreateBuffer(&StructuredBuffer, &data, &buffer);
}
else {
hr = device->CreateBuffer(&StructuredBuffer, nullptr, &buffer);
}
if (FAILED(hr)) {
throw std::runtime_error("StructuredBuffer can't get created");
}
return true;
}