BsVulkanRenderWindowManager.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsVulkanRenderWindowManager.h"
  4. #include "Win32/BsWin32RenderWindow.h"
  5. namespace bs
  6. {
  7. VulkanRenderWindowManager::VulkanRenderWindowManager()
  8. { }
  9. SPtr<RenderWindow> VulkanRenderWindowManager::createImpl(RENDER_WINDOW_DESC& desc, UINT32 windowId, const SPtr<RenderWindow>& parentWindow)
  10. {
  11. if(parentWindow != nullptr)
  12. {
  13. UINT64 hWnd;
  14. parentWindow->getCustomAttribute("WINDOW", &hWnd);
  15. desc.platformSpecific["parentWindowHandle"] = toString(hWnd);
  16. }
  17. // Create the window
  18. Win32RenderWindow* renderWindow = new (bs_alloc<Win32RenderWindow>()) Win32RenderWindow(desc, windowId);
  19. return bs_core_ptr<Win32RenderWindow>(renderWindow);
  20. }
  21. namespace ct
  22. {
  23. VulkanRenderWindowManager::VulkanRenderWindowManager(VulkanRenderAPI& renderAPI)
  24. :mRenderAPI(renderAPI)
  25. { }
  26. SPtr<RenderWindow> VulkanRenderWindowManager::createInternal(RENDER_WINDOW_DESC& desc, UINT32 windowId)
  27. {
  28. // Create the window
  29. Win32RenderWindow* renderWindow =
  30. new (bs_alloc<Win32RenderWindow>()) Win32RenderWindow(desc, windowId, mRenderAPI);
  31. SPtr<Win32RenderWindow> renderWindowPtr = bs_shared_ptr<Win32RenderWindow>(renderWindow);
  32. renderWindowPtr->_setThisPtr(renderWindowPtr);
  33. windowCreated(renderWindow);
  34. return renderWindowPtr;
  35. }
  36. }
  37. }