BsD3D9RenderWindowManager.cpp 1.2 KB

123456789101112131415161718192021222324252627282930
  1. //__________________________ Banshee Project - A modern game development toolkit _________________________________//
  2. //_____________________________________ www.banshee-project.com __________________________________________________//
  3. //________________________ Copyright (c) 2014 Marko Pintera. All rights reserved. ________________________________//
  4. #include "BsD3D9RenderWindowManager.h"
  5. #include "BsD3D9RenderSystem.h"
  6. #include "BsD3D9RenderWindow.h"
  7. #include "BsAsyncOp.h"
  8. namespace BansheeEngine
  9. {
  10. D3D9RenderWindowManager::D3D9RenderWindowManager(D3D9RenderSystem* renderSystem)
  11. :mRenderSystem(renderSystem)
  12. {
  13. assert(mRenderSystem != nullptr);
  14. }
  15. RenderWindowPtr D3D9RenderWindowManager::createImpl(RENDER_WINDOW_DESC& desc, RenderWindowPtr parentWindow)
  16. {
  17. if(parentWindow != nullptr)
  18. {
  19. HWND hWnd;
  20. parentWindow->getCustomAttribute("WINDOW", &hWnd);
  21. desc.platformSpecific["parentWindowHandle"] = toString((UINT64)hWnd);
  22. }
  23. D3D9RenderWindow* window = new (bs_alloc<D3D9RenderWindow, PoolAlloc>()) D3D9RenderWindow(desc, mRenderSystem->getInstanceHandle());
  24. return RenderWindowPtr(window, &CoreObject::_deleteDelayed<D3D9RenderWindow, PoolAlloc>);
  25. }
  26. }