CmD3D11HardwareBufferManager.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #include "CmD3D11HardwareBufferManager.h"
  2. #include "CmD3D11VertexBuffer.h"
  3. #include "CmD3D11IndexBuffer.h"
  4. #include "CmD3D11GpuBuffer.h"
  5. #include "CmD3D11GpuParamBlock.h"
  6. #include "CmGpuParamDesc.h"
  7. namespace CamelotEngine
  8. {
  9. D3D11HardwareBufferManager::D3D11HardwareBufferManager(D3D11Device& device)
  10. : mDevice(device)
  11. { }
  12. D3D11HardwareBufferManager::~D3D11HardwareBufferManager()
  13. {
  14. }
  15. VertexBufferPtr D3D11HardwareBufferManager::createVertexBuffer(UINT32 vertexSize,
  16. UINT32 numVerts, GpuBufferUsage usage, bool streamOut)
  17. {
  18. assert (numVerts > 0);
  19. D3D11VertexBuffer* vbuf = new D3D11VertexBuffer(mDevice,
  20. this, vertexSize, numVerts, usage, false, streamOut);
  21. {
  22. mVertexBuffers.insert(vbuf);
  23. }
  24. return VertexBufferPtr(vbuf);
  25. }
  26. IndexBufferPtr D3D11HardwareBufferManager::createIndexBuffer(IndexBuffer::IndexType itype,
  27. UINT32 numIndexes, GpuBufferUsage usage)
  28. {
  29. assert (numIndexes > 0);
  30. D3D11IndexBuffer* idx = new D3D11IndexBuffer(mDevice,
  31. this, itype, numIndexes, usage, false);
  32. {
  33. mIndexBuffers.insert(idx);
  34. }
  35. return IndexBufferPtr(idx);
  36. }
  37. GpuParamBlockPtr D3D11HardwareBufferManager::createGpuParamBlock(const GpuParamBlockDesc& blockDesc)
  38. {
  39. return GpuParamBlockPtr(new D3D11GpuParamBlock(blockDesc));
  40. }
  41. GpuBufferPtr D3D11HardwareBufferManager::createGpuBuffer(UINT32 elementCount, UINT32 elementSize,
  42. GpuBufferType type, GpuBufferUsage usage, bool randomGpuWrite, bool useCounter)
  43. {
  44. return GpuBufferPtr(new D3D11GpuBuffer(elementCount, elementSize, type, usage, randomGpuWrite, useCounter));
  45. }
  46. VertexDeclarationPtr D3D11HardwareBufferManager::createVertexDeclarationImpl(void)
  47. {
  48. return VertexDeclarationPtr(new VertexDeclaration());
  49. }
  50. void D3D11HardwareBufferManager::destroyVertexDeclarationImpl(VertexDeclaration* decl)
  51. {
  52. delete decl;
  53. }
  54. }