1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #pragma once
- #include "DXBuffer.h"
- struct ID3D12Resource;
- struct ID3D12Device;
- struct D3D12_RESOURCE_DESC;
- struct ID3D12GraphicsCommandList;
- namespace Framework
- {
- //! Ein Buffer mit Daten im Grafikspeicher
- class DX12Buffer : public DXBuffer
- {
- protected:
- D3D12_RESOURCE_DESC* description;
- ID3D12Resource* buffer;
- ID3D12Resource* intermediate;
- ID3D12Device* device;
- ID3D12GraphicsCommandList* list;
- public:
- //! Konstruktor
- //! eSize: Die Länge eines Elementes in Bytes
- DLLEXPORT DX12Buffer( int eSize, ID3D12Device* device, ID3D12GraphicsCommandList* list, int bindFlags );
- //! Destruktor
- DLLEXPORT virtual ~DX12Buffer();
- //! Kopiert die Daten in den Buffer, fals sie sich verändert haben
- DLLEXPORT void copieren( int byteCount = -1 ) override;
- //! Gibt den Buffer zurück
- DLLEXPORT ID3D12Resource* zBuffer() const;
- };
- class DX12IndexBuffer : public DX12Buffer
- {
- private:
- bool ibs;
- DX12DirectCommandQueue* direct;
- DX12CopyCommandQueue* copy;
- public:
- DX12IndexBuffer( int eSize, ID3D12Device* device, DX12CopyCommandQueue* copy, DX12DirectCommandQueue* direct );
- ~DX12IndexBuffer();
- //! Kopiert die Daten in den Buffer, fals sie sich verändert haben
- DLLEXPORT void copieren( int byteCount = -1 ) override;
- };
- class DX12VertexBuffer : public DX12Buffer
- {
- private:
- bool vbs;
- DX12DirectCommandQueue* direct;
- DX12CopyCommandQueue* copy;
- public:
- DX12VertexBuffer( int eSize, ID3D12Device* device, DX12CopyCommandQueue* copy, DX12DirectCommandQueue* direct );
- ~DX12VertexBuffer();
- //! Kopiert die Daten in den Buffer, fals sie sich verändert haben
- DLLEXPORT void copieren( int byteCount = -1 ) override;
- };
- }
|