UiComponent.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. {
  10. /// @addtogroup scene
  11. /// @{
  12. /// UI scene component.
  13. class UiComponent : public SceneComponent
  14. {
  15. ANKI_SCENE_COMPONENT(UiComponent)
  16. public:
  17. UiComponent(SceneNode* node)
  18. : SceneComponent(node, getStaticClassId())
  19. {
  20. }
  21. void init(UiQueueElementDrawCallback callback, void* userData)
  22. {
  23. ANKI_ASSERT(callback != nullptr);
  24. ANKI_ASSERT(userData != nullptr);
  25. m_drawCallback = callback;
  26. m_userData = userData;
  27. }
  28. void setupUiQueueElement(UiQueueElement& el) const
  29. {
  30. ANKI_ASSERT(el.m_drawCallback != nullptr);
  31. el.m_drawCallback = m_drawCallback;
  32. ANKI_ASSERT(el.m_userData != nullptr);
  33. el.m_userData = m_userData;
  34. }
  35. private:
  36. UiQueueElementDrawCallback m_drawCallback = nullptr;
  37. void* m_userData = nullptr;
  38. };
  39. /// @}
  40. } // end namespace anki