123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #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;
- };
- } // namespace Framework
|