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