CmEditorWindow.cpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include "CmEditorWindow.h"
  2. #include "CmRenderWindow.h"
  3. #include "CmApplication.h"
  4. #include "CmSceneObject.h"
  5. #include "CmCursor.h"
  6. #include "BsGUIWidget.h"
  7. #include "BsGUILabel.h"
  8. #include "BsGUISkin.h"
  9. #include "BsOverlayManager.h"
  10. #include "BsCamera.h"
  11. #include "BsUpdateCallback.h"
  12. #include "BsEngineGUI.h"
  13. using namespace CamelotFramework;
  14. using namespace BansheeEngine;
  15. namespace BansheeEditor
  16. {
  17. EditorWindow::EditorWindow(const String& name)
  18. {
  19. RENDER_WINDOW_DESC renderWindowDesc;
  20. renderWindowDesc.width = 200;
  21. renderWindowDesc.height = 200;
  22. renderWindowDesc.title = "EditorWindow";
  23. renderWindowDesc.fullscreen = false;
  24. renderWindowDesc.border = WindowBorder::None;
  25. renderWindowDesc.toolWindow = true;
  26. mRenderWindow = RenderWindow::create(renderWindowDesc, gApplication().getPrimaryWindow());
  27. HSceneObject so = SceneObject::create("EditorWindow-" + name);
  28. HGUIWidget gui = so->addComponent<GUIWidget>();
  29. GameObjectHandle<UpdateCallback> updateCallback = so->addComponent<UpdateCallback>();
  30. updateCallback->onUpdate.connect(boost::bind(&EditorWindow::update, this));
  31. HCamera camera = so->addComponent<Camera>();
  32. camera->init(mRenderWindow, 0.0f, 0.0f, 1.0f, 1.0f, 0);
  33. camera->setNearClipDistance(5);
  34. camera->setAspectRatio(1.0f);
  35. camera->setIgnoreSceneRenderables(true);
  36. //// DEBUG ONLY - Skin should exist externally
  37. //mSkin = CM_NEW(GUISkin, GUIAlloc) GUISkin();
  38. OverlayManager::instance().attachOverlay(camera.get(), gui.get());
  39. //GUIElementStyle labelStyle;
  40. //labelStyle.font = dbgFont;
  41. //labelStyle.fontSize = dbgFontSize;
  42. //mSkin->setStyle(GUILabel::getGUITypeName(), labelStyle);
  43. //gui->setSkin(mSkin);
  44. //// END DEBUG
  45. gui->setSkin(&EngineGUI::instance().getSkin());
  46. mDbgLabel = GUILabel::create(gui.get(), "Testing test", renderWindowDesc.width);
  47. }
  48. EditorWindow::~EditorWindow()
  49. {
  50. mRenderWindow->destroy();
  51. }
  52. void EditorWindow::update()
  53. {
  54. Int2 cursorPos = Cursor::getWindowPosition(*mRenderWindow);
  55. //mDbgLabel->setText(toString(cursorPos.x) + ", " + toString(cursorPos.y));
  56. }
  57. }