CmD3D11HardwareBufferManager.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include "CmD3D11HardwareBufferManager.h"
  2. #include "CmD3D11VertexBuffer.h"
  3. #include "CmD3D11IndexBuffer.h"
  4. #include "CmD3D11GpuBuffer.h"
  5. #include "CmD3D11GpuParamBlockBuffer.h"
  6. #include "CmGpuParamDesc.h"
  7. namespace CamelotFramework
  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 = new (cm_alloc<D3D11VertexBuffer, PoolAlloc>()) D3D11VertexBuffer(mDevice, this, vertexSize, numVerts, usage, false, streamOut);
  19. return cm_core_ptr<D3D11VertexBuffer, PoolAlloc>(buffer);
  20. }
  21. IndexBufferPtr D3D11HardwareBufferManager::createIndexBufferImpl(IndexBuffer::IndexType itype,
  22. UINT32 numIndexes, GpuBufferUsage usage)
  23. {
  24. D3D11IndexBuffer* buffer = new (cm_alloc<D3D11IndexBuffer, PoolAlloc>()) D3D11IndexBuffer(mDevice, this, itype, numIndexes, usage, false);
  25. return cm_core_ptr<D3D11IndexBuffer, PoolAlloc>(buffer);
  26. }
  27. GpuParamBlockBufferPtr D3D11HardwareBufferManager::createGpuParamBlockBufferImpl()
  28. {
  29. D3D11GpuParamBlockBuffer* paramBlockBuffer = new (cm_alloc<D3D11GpuParamBlockBuffer, PoolAlloc>()) D3D11GpuParamBlockBuffer();
  30. return cm_core_ptr<D3D11GpuParamBlockBuffer, PoolAlloc>(paramBlockBuffer);
  31. }
  32. GpuBufferPtr D3D11HardwareBufferManager::createGpuBufferImpl(UINT32 elementCount, UINT32 elementSize,
  33. GpuBufferType type, GpuBufferUsage usage, bool randomGpuWrite, bool useCounter)
  34. {
  35. D3D11GpuBuffer* buffer = new (cm_alloc<D3D11GpuBuffer, PoolAlloc>()) D3D11GpuBuffer(elementCount, elementSize, type, usage, randomGpuWrite, useCounter);
  36. return cm_core_ptr<D3D11GpuBuffer, PoolAlloc>(buffer);
  37. }
  38. }