BsVulkanCommandBufferManager.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsVulkanCommandBufferManager.h"
  4. #include "BsVulkanCommandBuffer.h"
  5. #include "BsVulkanRenderAPI.h"
  6. namespace BansheeEngine
  7. {
  8. VulkanCommandBufferManager::VulkanCommandBufferManager(const VulkanRenderAPI& rapi)
  9. :mRapi(rapi)
  10. { }
  11. VulkanCommandBufferManager::~VulkanCommandBufferManager()
  12. {
  13. }
  14. SPtr<CommandBuffer> VulkanCommandBufferManager::create(CommandBufferType type, UINT32 deviceIdx, UINT32 syncMask,
  15. bool secondary)
  16. {
  17. UINT32 numDevices = mRapi._getNumDevices();
  18. if(deviceIdx >= numDevices)
  19. {
  20. LOGERR("Cannot create command buffer, invalid device index: " + toString(deviceIdx) +
  21. ". Valid range: [0, " + toString(numDevices) + ").");
  22. return nullptr;
  23. }
  24. SPtr<VulkanDevice> device = mRapi._getDevice(deviceIdx);
  25. CommandBuffer* buffer =
  26. new (bs_alloc<VulkanCommandBuffer>()) VulkanCommandBuffer(device, type, syncMask, secondary);
  27. return bs_shared_ptr(buffer);
  28. }
  29. }