CmD3D11HardwareBufferManager.cpp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. HardwareConstantBufferPtr
  38. D3D11HardwareBufferManagerBase::createConstantBuffer(UINT32 sizeBytes, HardwareBuffer::Usage usage)
  39. {
  40. assert (sizeBytes > 0);
  41. D3D11HardwareConstantBuffer* cnstBuf = new D3D11HardwareConstantBuffer(mDevice, this, sizeBytes, usage, false);
  42. {
  43. mConstantBuffers.insert(cnstBuf);
  44. }
  45. return HardwareConstantBufferPtr(cnstBuf);
  46. }
  47. VertexDeclarationPtr D3D11HardwareBufferManagerBase::createVertexDeclarationImpl(void)
  48. {
  49. return VertexDeclarationPtr(new D3D11VertexDeclaration());
  50. }
  51. void D3D11HardwareBufferManagerBase::destroyVertexDeclarationImpl(VertexDeclaration* decl)
  52. {
  53. delete decl;
  54. }
  55. }