CmD3D11HardwareBufferManager.cpp 1.9 KB

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