BsRenderWindow.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include "BsRenderWindow.h"
  2. #include "BsCoreThread.h"
  3. #include "BsRenderWindowManager.h"
  4. #include "BsViewport.h"
  5. #include "BsPlatform.h"
  6. namespace BansheeEngine
  7. {
  8. RenderWindow::RenderWindow(const RENDER_WINDOW_DESC& desc)
  9. : RenderTarget(), mIsFullScreen(false), mDesc(desc), mHasFocus(false), mLeft(0), mTop(0), mHidden(false)
  10. {
  11. mWidth = desc.videoMode.getWidth();
  12. mHeight = desc.videoMode.getHeight();
  13. mHwGamma = desc.gamma;
  14. mVSync = desc.vsync;
  15. mMultisampleCount = desc.multisampleCount;
  16. mLeft = desc.left;
  17. mTop = desc.top;
  18. mIsFullScreen = desc.fullscreen;
  19. mHidden = desc.hidden;
  20. }
  21. RenderWindow::~RenderWindow()
  22. {
  23. }
  24. void RenderWindow::setHidden(bool hidden)
  25. {
  26. THROW_IF_NOT_CORE_THREAD;
  27. }
  28. bool RenderWindow::isFullScreen(void) const
  29. {
  30. return mIsFullScreen;
  31. }
  32. void RenderWindow::_windowMovedOrResized()
  33. {
  34. THROW_IF_NOT_CORE_THREAD;
  35. }
  36. void RenderWindow::_windowFocusReceived()
  37. {
  38. THROW_IF_NOT_CORE_THREAD;
  39. mHasFocus = true;
  40. }
  41. void RenderWindow::_windowFocusLost()
  42. {
  43. THROW_IF_NOT_CORE_THREAD;
  44. mHasFocus = false;
  45. }
  46. void RenderWindow::destroy()
  47. {
  48. Platform::resetNonClientAreas(*this);
  49. RenderWindowManager::instance().windowDestroyed(this);
  50. RenderTarget::destroy();
  51. }
  52. RenderWindowPtr RenderWindow::create(RENDER_WINDOW_DESC& desc, RenderWindowPtr parentWindow)
  53. {
  54. return RenderWindowManager::instance().create(desc, parentWindow);
  55. }
  56. }