1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #pragma once
- #include "Betriebssystem.h"
- #include "ReferenceCounter.h"
- //! DirectX12 Datentypen
- struct ID3D12CommandAllocator;
- struct ID3D12CommandQueue;
- struct ID3D12Fence;
- struct ID3D12Device2;
- struct ID3D12GraphicsCommandList2;
- namespace Framework
- {
- class DX12Command;
- class DX12CommandQueue : public virtual ReferenceCounter
- {
- protected:
- ID3D12CommandAllocator *allocator;
- ID3D12GraphicsCommandList2 *commandList;
- ID3D12CommandQueue *queue;
- ID3D12Fence *fence;
- ID3D12Device2 *device;
- HANDLE event;
- unsigned __int64 fenceValue;
- DX12CommandQueue( int typ, ID3D12Device2 *device );
- public:
- virtual ~DX12CommandQueue();
- unsigned __int64 addSignalFromGPU();
- void whaitForGPUSignal();
- void whaitForGPUSignal( unsigned __int64 value );
- void flush();
- ID3D12CommandAllocator *getAllocator() const;
- ID3D12GraphicsCommandList2 *getCommandList() const;
- ID3D12CommandQueue *getQueue() const;
- void execute();
- };
- class DX12DirectCommandQueue : public DX12CommandQueue
- {
- public:
- DX12DirectCommandQueue( ID3D12Device2 *device );
- };
- class DX12CopyCommandQueue : public DX12CommandQueue
- {
- public:
- DX12CopyCommandQueue( ID3D12Device2 *device );
- };
- class DX12ComputeCommandQueue : public DX12CommandQueue
- {
- public:
- DX12ComputeCommandQueue( ID3D12Device2 *device );
- };
- };
|