BsD3D11GpuParamBlockBuffer.h 903 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #pragma once
  2. #include "BsD3D11Prerequisites.h"
  3. #include "BsGpuParamBlockBuffer.h"
  4. namespace BansheeEngine
  5. {
  6. /**
  7. * @brief DirectX 11 implementation of a parameter block buffer (constant buffer in DX11 lingo).
  8. */
  9. class BS_D3D11_EXPORT D3D11GpuParamBlockBufferCore : public GpuParamBlockBufferCore
  10. {
  11. public:
  12. D3D11GpuParamBlockBufferCore(UINT32 size, GpuParamBlockUsage usage);
  13. ~D3D11GpuParamBlockBufferCore();
  14. /**
  15. * @copydoc GpuParamBlockBufferCore::writeData.
  16. */
  17. void writeToGPU(const UINT8* data) override;
  18. /**
  19. * @copydoc GpuParamBlockBufferCore::readData.
  20. */
  21. void readFromGPU(UINT8* data) const override;
  22. /**
  23. * @brief Returns internal DX11 buffer object.
  24. */
  25. ID3D11Buffer* getD3D11Buffer() const;
  26. protected:
  27. /**
  28. * @copydoc GpuParamBlockBufferCore::initialize
  29. */
  30. virtual void initialize() override;
  31. private:
  32. D3D11HardwareBuffer* mBuffer;
  33. };
  34. }