CmD3D11HardwareBufferManager.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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::createVertexBufferImpl(UINT32 vertexSize,
  16. UINT32 numVerts, GpuBufferUsage usage, bool streamOut)
  17. {
  18. D3D11VertexBuffer* buffer = CM_NEW(D3D11VertexBuffer, PoolAlloc) D3D11VertexBuffer(mDevice, this, vertexSize, numVerts, usage, false, streamOut);
  19. return VertexBufferPtr(buffer, &CoreObject::_deleteDelayed<D3D11VertexBuffer, PoolAlloc>);
  20. }
  21. IndexBufferPtr D3D11HardwareBufferManager::createIndexBufferImpl(IndexBuffer::IndexType itype,
  22. UINT32 numIndexes, GpuBufferUsage usage)
  23. {
  24. D3D11IndexBuffer* buffer = CM_NEW(D3D11IndexBuffer, PoolAlloc) D3D11IndexBuffer(mDevice, this, itype, numIndexes, usage, false);
  25. return IndexBufferPtr(buffer, &CoreObject::_deleteDelayed<D3D11IndexBuffer, PoolAlloc>);
  26. }
  27. GpuParamBlockPtr D3D11HardwareBufferManager::createGpuParamBlockImpl()
  28. {
  29. D3D11GpuParamBlock* paramBlock = CM_NEW(D3D11GpuParamBlock, PoolAlloc) D3D11GpuParamBlock();
  30. return GpuParamBlockPtr(paramBlock, &CoreObject::_deleteDelayed<D3D11GpuParamBlock, PoolAlloc>);
  31. }
  32. GpuBufferPtr D3D11HardwareBufferManager::createGpuBufferImpl(UINT32 elementCount, UINT32 elementSize,
  33. GpuBufferType type, GpuBufferUsage usage, bool randomGpuWrite, bool useCounter)
  34. {
  35. D3D11GpuBuffer* buffer = CM_NEW(D3D11GpuBuffer, PoolAlloc) D3D11GpuBuffer(elementCount, elementSize, type, usage, randomGpuWrite, useCounter);
  36. return GpuBufferPtr(buffer, &CoreObject::_deleteDelayed<D3D11GpuBuffer, PoolAlloc>);
  37. }
  38. }