UiComponent.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // Copyright (C) 2009-2021, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #pragma once
  6. #include <AnKi/Scene/Components/SceneComponent.h>
  7. #include <AnKi/Renderer/RenderQueue.h>
  8. namespace anki {
  9. /// @addtogroup scene
  10. /// @{
  11. /// UI scene component.
  12. class UiComponent : public SceneComponent
  13. {
  14. ANKI_SCENE_COMPONENT(UiComponent)
  15. public:
  16. UiComponent(SceneNode* node)
  17. : SceneComponent(node, getStaticClassId())
  18. {
  19. }
  20. void init(UiQueueElementDrawCallback callback, void* userData)
  21. {
  22. ANKI_ASSERT(callback != nullptr);
  23. ANKI_ASSERT(userData != nullptr);
  24. m_drawCallback = callback;
  25. m_userData = userData;
  26. }
  27. void setupUiQueueElement(UiQueueElement& el) const
  28. {
  29. ANKI_ASSERT(el.m_drawCallback != nullptr);
  30. el.m_drawCallback = m_drawCallback;
  31. ANKI_ASSERT(el.m_userData != nullptr);
  32. el.m_userData = m_userData;
  33. }
  34. private:
  35. UiQueueElementDrawCallback m_drawCallback = nullptr;
  36. void* m_userData = nullptr;
  37. };
  38. /// @}
  39. } // end namespace anki