CmD3D11HardwareBufferManager.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #include "CmD3D11HardwareBufferManager.h"
  2. #include "CmD3D11HardwareVertexBuffer.h"
  3. #include "CmD3D11HardwareIndexBuffer.h"
  4. #include "CmD3D11HardwareConstantBuffer.h"
  5. #include "CmD3D11VertexDeclaration.h"
  6. namespace CamelotEngine
  7. {
  8. D3D11HardwareBufferManagerBase::D3D11HardwareBufferManagerBase(D3D11Device& device)
  9. : mDevice(device)
  10. { }
  11. D3D11HardwareBufferManagerBase::~D3D11HardwareBufferManagerBase()
  12. {
  13. destroyAllBindings();
  14. }
  15. HardwareVertexBufferPtr D3D11HardwareBufferManagerBase::createVertexBuffer(UINT32 vertexSize,
  16. UINT32 numVerts, HardwareBuffer::Usage usage, bool streamOut)
  17. {
  18. assert (numVerts > 0);
  19. D3D11HardwareVertexBuffer* vbuf = new D3D11HardwareVertexBuffer(mDevice,
  20. this, vertexSize, numVerts, usage, false, streamOut);
  21. {
  22. mVertexBuffers.insert(vbuf);
  23. }
  24. return HardwareVertexBufferPtr(vbuf);
  25. }
  26. HardwareIndexBufferPtr D3D11HardwareBufferManagerBase::createIndexBuffer(HardwareIndexBuffer::IndexType itype,
  27. UINT32 numIndexes, HardwareBuffer::Usage usage)
  28. {
  29. assert (numIndexes > 0);
  30. D3D11HardwareIndexBuffer* idx = new D3D11HardwareIndexBuffer(mDevice,
  31. this, itype, numIndexes, usage, false);
  32. {
  33. mIndexBuffers.insert(idx);
  34. }
  35. return HardwareIndexBufferPtr(idx);
  36. }
  37. VertexDeclarationPtr D3D11HardwareBufferManagerBase::createVertexDeclarationImpl(void)
  38. {
  39. return VertexDeclarationPtr(new D3D11VertexDeclaration());
  40. }
  41. void D3D11HardwareBufferManagerBase::destroyVertexDeclarationImpl(VertexDeclaration* decl)
  42. {
  43. delete decl;
  44. }
  45. }