BsD3D9HardwareBufferManager.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #pragma once
  2. #include "BsD3D9Prerequisites.h"
  3. #include "BsHardwareBufferManager.h"
  4. namespace BansheeEngine {
  5. /** Implementation of HardwareBufferManager for D3D9. */
  6. class BS_D3D9_EXPORT D3D9HardwareBufferManager : public HardwareBufferManager
  7. {
  8. public:
  9. D3D9HardwareBufferManager();
  10. ~D3D9HardwareBufferManager();
  11. protected:
  12. /// Internal method for creates a new vertex declaration, may be overridden by certain rendering APIs
  13. VertexDeclarationPtr createVertexDeclarationImpl(const VertexDeclaration::VertexElementList& elements);
  14. /**
  15. * @copydoc HardwareBufferManager::createVertexBufferImpl
  16. */
  17. VertexBufferPtr createVertexBufferImpl(UINT32 vertexSize, UINT32 numVerts, GpuBufferUsage usage, bool streamOut = false);
  18. /**
  19. * @copydoc HardwareBufferManager::createIndexBufferImpl
  20. */
  21. IndexBufferPtr createIndexBufferImpl(IndexBuffer::IndexType itype, UINT32 numIndexes, GpuBufferUsage usage);
  22. /** @copydoc HardwareBufferManager::createGpuParamBlockBufferImpl */
  23. GpuParamBlockBufferPtr createGpuParamBlockBufferImpl();
  24. /**
  25. * @copydoc HardwareBufferManager::createGenericBufferImpl
  26. *
  27. * DirectX 9 does not support generic buffers so this method will return a dummy instance.
  28. */
  29. GpuBufferPtr createGpuBufferImpl(UINT32 elementCount, UINT32 elementSize,
  30. GpuBufferType type, GpuBufferUsage usage, bool randomGpuWrite = false, bool useCounter = false);
  31. };
  32. }