BsD3D11HardwareBufferManager.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. D3D11HardwareBufferManager::D3D11HardwareBufferManager(D3D11Device& device)
  10. : mDevice(device)
  11. { }
  12. GpuParamBlockBufferPtr D3D11HardwareBufferManager::createGpuParamBlockBufferImpl()
  13. {
  14. D3D11GpuParamBlockBuffer* paramBlockBuffer = new (bs_alloc<D3D11GpuParamBlockBuffer, PoolAlloc>()) D3D11GpuParamBlockBuffer();
  15. return bs_core_ptr<D3D11GpuParamBlockBuffer, PoolAlloc>(paramBlockBuffer);
  16. }
  17. GpuBufferPtr D3D11HardwareBufferManager::createGpuBufferImpl(UINT32 elementCount, UINT32 elementSize,
  18. GpuBufferType type, GpuBufferUsage usage, bool randomGpuWrite, bool useCounter)
  19. {
  20. D3D11GpuBuffer* buffer = new (bs_alloc<D3D11GpuBuffer, PoolAlloc>()) D3D11GpuBuffer(elementCount, elementSize, type, usage, randomGpuWrite, useCounter);
  21. return bs_core_ptr<D3D11GpuBuffer, PoolAlloc>(buffer);
  22. }
  23. D3D11HardwareBufferCoreManager::D3D11HardwareBufferCoreManager(D3D11Device& device)
  24. : mDevice(device)
  25. { }
  26. SPtr<VertexBufferCore> D3D11HardwareBufferCoreManager::createVertexBufferImpl(UINT32 vertexSize,
  27. UINT32 numVerts, GpuBufferUsage usage, bool streamOut)
  28. {
  29. return bs_shared_ptr<D3D11VertexBufferCore>(mDevice, vertexSize, numVerts, usage, streamOut);
  30. }
  31. SPtr<IndexBufferCore> D3D11HardwareBufferCoreManager::createIndexBufferImpl(IndexType itype,
  32. UINT32 numIndexes, GpuBufferUsage usage)
  33. {
  34. return bs_shared_ptr<D3D11IndexBufferCore>(mDevice, itype, numIndexes, usage);
  35. }
  36. }