BsCSkybox.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "Components/BsCSkybox.h"
  4. #include "RTTI/BsCSkyboxRTTI.h"
  5. #include "Scene/BsSceneManager.h"
  6. #include "Renderer/BsSkybox.h"
  7. namespace bs
  8. {
  9. CSkybox::CSkybox()
  10. {
  11. setFlag(ComponentFlag::AlwaysRun, true);
  12. setName("Skybox");
  13. }
  14. CSkybox::CSkybox(const HSceneObject& parent)
  15. : Component(parent)
  16. {
  17. setFlag(ComponentFlag::AlwaysRun, true);
  18. setName("Skybox");
  19. }
  20. CSkybox::~CSkybox()
  21. {
  22. mInternal->destroy();
  23. }
  24. void CSkybox::onInitialized()
  25. {
  26. // If mInternal already exists this means this object was deserialized,
  27. // so all we need to do is initialize it.
  28. if (mInternal != nullptr)
  29. mInternal->initialize();
  30. else
  31. mInternal = Skybox::create();
  32. gSceneManager()._bindActor(mInternal, sceneObject());
  33. }
  34. void CSkybox::onDestroyed()
  35. {
  36. gSceneManager()._unbindActor(mInternal);
  37. }
  38. RTTITypeBase* CSkybox::getRTTIStatic()
  39. {
  40. return CSkyboxRTTI::instance();
  41. }
  42. RTTITypeBase* CSkybox::getRTTI() const
  43. {
  44. return CSkybox::getRTTIStatic();
  45. }
  46. }