#pragma once #include "Texture.h" struct ID3D12Device; struct D3D12_RESOURCE_DESC; struct ID3D12Resource; struct ID3D12GraphicsCommandList; namespace Framework { class DX12Texture : public Texture { private: ID3D12Resource* buffer; ID3D12Resource* intermediate; ID3D12Device* device; DX12CopyCommandQueue* copy; DX12DirectCommandQueue* direct; bool shaderResource; public: DLLEXPORT DX12Texture(ID3D12Device* device, DX12CopyCommandQueue* copy, DX12DirectCommandQueue* direct); DLLEXPORT ~DX12Texture(); //! Updates the texture. The pixels of the current image are copied //! to graphics memory DLLEXPORT bool updateTextur() override; //! Returns true if updateTextur needs to be called DLLEXPORT bool brauchtUpdate() const override; //! Returns the DX12 resource DLLEXPORT ID3D12Resource* getResource(); }; } // namespace Framework