CmD3D11HardwareBufferManager.cpp 1.7 KB

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