DX12Texture.h 924 B

12345678910111213141516171819202122232425262728293031323334
  1. #pragma once
  2. #include "Texture.h"
  3. struct ID3D12Device;
  4. struct ID3D12Resource;
  5. namespace Framework
  6. {
  7. class DX12CopyCommandQueue;
  8. class DX12DirectCommandQueue;
  9. class DX12Texture : public Texture
  10. {
  11. private:
  12. ID3D12Resource* buffer;
  13. ID3D12Resource* upload;
  14. ID3D12Device* device;
  15. DX12DirectCommandQueue* direct;
  16. public:
  17. DLLEXPORT DX12Texture(ID3D12Device* device,
  18. DX12DirectCommandQueue* direct,
  19. TextureDirection dir);
  20. DLLEXPORT ~DX12Texture();
  21. //! Updates the texture. The pixels of the current image are copied
  22. //! to graphics memory
  23. DLLEXPORT bool updateTextur() override;
  24. //! Returns true if updateTextur needs to be called
  25. DLLEXPORT bool needsUpdate() const override;
  26. //! Returns the DX12 resource
  27. DLLEXPORT ID3D12Resource* zResource();
  28. };
  29. } // namespace Framework