#pragma once #include "Texture.h" struct ID3D12Device; struct ID3D12Resource; namespace Framework { class DX12CopyCommandQueue; class DX12DirectCommandQueue; class DX12Texture : public Texture { private: ID3D12Resource* buffer; ID3D12Resource* upload; ID3D12Device* device; DX12DirectCommandQueue* direct; public: DLLEXPORT DX12Texture(ID3D12Device* device, DX12DirectCommandQueue* direct, TextureDirection dir); 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 needsUpdate() const override; //! Returns the DX12 resource DLLEXPORT ID3D12Resource* zResource(); }; } // namespace Framework