SkyboxComponent.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // Copyright (C) 2009-present, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSEJ
  5. #include <AnKi/Scene/Components/SkyboxComponent.h>
  6. #include <AnKi/Scene/SceneNode.h>
  7. #include <AnKi/Scene/SceneGraph.h>
  8. #include <AnKi/Resource/ImageResource.h>
  9. #include <AnKi/Resource/ResourceManager.h>
  10. namespace anki {
  11. SkyboxComponent::SkyboxComponent(SceneNode* node)
  12. : SceneComponent(node, kClassType)
  13. {
  14. }
  15. SkyboxComponent::~SkyboxComponent()
  16. {
  17. }
  18. void SkyboxComponent::loadImageResource(CString filename)
  19. {
  20. ImageResourcePtr img;
  21. const Error err = ResourceManager::getSingleton().loadResource(filename, img);
  22. if(err)
  23. {
  24. ANKI_SCENE_LOGE("Setting skybox image failed. Ignoring error");
  25. return;
  26. }
  27. m_image = std::move(img);
  28. m_type = SkyboxType::kImage2D;
  29. }
  30. void SkyboxComponent::update([[maybe_unused]] SceneComponentUpdateInfo& info, Bool& updated)
  31. {
  32. updated = false;
  33. }
  34. Error SkyboxComponent::serialize(SceneSerializer& serializer)
  35. {
  36. ANKI_SERIALIZE(m_type, 1);
  37. ANKI_SERIALIZE(m_color, 1);
  38. ANKI_SERIALIZE(m_image, 1);
  39. ANKI_SERIALIZE(m_imageScale, 1);
  40. ANKI_SERIALIZE(m_imageBias, 1);
  41. ANKI_SERIALIZE(m_fog.m_minDensity, 1);
  42. ANKI_SERIALIZE(m_fog.m_maxDensity, 1);
  43. ANKI_SERIALIZE(m_fog.m_heightOfMinDensity, 1);
  44. ANKI_SERIALIZE(m_fog.m_heightOfMaxDensity, 1);
  45. ANKI_SERIALIZE(m_fog.m_scatteringCoeff, 1);
  46. ANKI_SERIALIZE(m_fog.m_absorptionCoeff, 1);
  47. ANKI_SERIALIZE(m_fog.m_diffuseColor, 1);
  48. return Error::kNone;
  49. }
  50. } // end namespace anki