|
|
@@ -13,7 +13,8 @@ DX12Buffer::DX12Buffer(
|
|
|
: DXBuffer(eSize),
|
|
|
buffer(0),
|
|
|
zDevice(zDevice),
|
|
|
- queue(queue)
|
|
|
+ queue(queue),
|
|
|
+ currentState(D3D12_RESOURCE_STATE_COMMON)
|
|
|
{
|
|
|
description = new D3D12_RESOURCE_DESC();
|
|
|
ZeroMemory(description, sizeof(D3D12_RESOURCE_DESC));
|
|
|
@@ -110,9 +111,18 @@ void Framework::DX12Buffer::createBufferWithoutData(
|
|
|
buffer, D3D12_RESOURCE_STATE_COMMON, states);
|
|
|
queue->zCommandList()->ResourceBarrier(1, &transition);
|
|
|
}
|
|
|
+ this->currentState = states;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void Framework::DX12Buffer::transformState(D3D12_RESOURCE_STATES newState)
|
|
|
+{
|
|
|
+ CD3DX12_RESOURCE_BARRIER transition
|
|
|
+ = CD3DX12_RESOURCE_BARRIER::Transition(buffer, currentState, newState);
|
|
|
+ queue->zCommandList()->ResourceBarrier(1, &transition);
|
|
|
+ currentState = newState;
|
|
|
+}
|
|
|
+
|
|
|
// Returns the buffer
|
|
|
ID3D12Resource* DX12Buffer::zBuffer() const
|
|
|
{
|