BsD3D11HardwareBufferManager.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "BsD3D11HardwareBufferManager.h"
  2. #include "BsD3D11VertexBuffer.h"
  3. #include "BsD3D11IndexBuffer.h"
  4. #include "BsD3D11GpuBuffer.h"
  5. #include "BsD3D11GpuParamBlockBuffer.h"
  6. #include "BsGpuParamDesc.h"
  7. namespace BansheeEngine
  8. {
  9. D3D11HardwareBufferCoreManager::D3D11HardwareBufferCoreManager(D3D11Device& device)
  10. : mDevice(device)
  11. { }
  12. SPtr<VertexBufferCore> D3D11HardwareBufferCoreManager::createVertexBufferInternal(UINT32 vertexSize,
  13. UINT32 numVerts, GpuBufferUsage usage, bool streamOut)
  14. {
  15. SPtr<D3D11VertexBufferCore> ret = bs_shared_ptr_new<D3D11VertexBufferCore>(mDevice, vertexSize, numVerts, usage, streamOut);
  16. ret->_setThisPtr(ret);
  17. return ret;
  18. }
  19. SPtr<IndexBufferCore> D3D11HardwareBufferCoreManager::createIndexBufferInternal(IndexType itype,
  20. UINT32 numIndexes, GpuBufferUsage usage)
  21. {
  22. SPtr<D3D11IndexBufferCore> ret = bs_shared_ptr_new<D3D11IndexBufferCore>(mDevice, itype, numIndexes, usage);
  23. ret->_setThisPtr(ret);
  24. return ret;
  25. }
  26. SPtr<GpuParamBlockBufferCore> D3D11HardwareBufferCoreManager::createGpuParamBlockBufferInternal(UINT32 size, GpuParamBlockUsage usage)
  27. {
  28. D3D11GpuParamBlockBufferCore* paramBlockBuffer = new (bs_alloc<D3D11GpuParamBlockBufferCore>()) D3D11GpuParamBlockBufferCore(size, usage);
  29. SPtr<GpuParamBlockBufferCore> paramBlockBufferPtr = bs_shared_ptr<D3D11GpuParamBlockBufferCore>(paramBlockBuffer);
  30. paramBlockBufferPtr->_setThisPtr(paramBlockBufferPtr);
  31. return paramBlockBufferPtr;
  32. }
  33. SPtr<GpuBufferCore> D3D11HardwareBufferCoreManager::createGpuBufferInternal(UINT32 elementCount, UINT32 elementSize,
  34. GpuBufferType type, GpuBufferUsage usage, bool randomGpuWrite, bool useCounter)
  35. {
  36. D3D11GpuBufferCore* buffer = new (bs_alloc<D3D11GpuBufferCore>()) D3D11GpuBufferCore(elementCount, elementSize, type, usage, randomGpuWrite, useCounter);
  37. SPtr<D3D11GpuBufferCore> bufferPtr = bs_shared_ptr<D3D11GpuBufferCore>(buffer);
  38. bufferPtr->_setThisPtr(bufferPtr);
  39. return bufferPtr;
  40. }
  41. }