GenericGpuComputeJobComponent.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. /// Holds some info for GPU compute jobs.
  13. class GenericGpuComputeJobComponent : public SceneComponent
  14. {
  15. ANKI_SCENE_COMPONENT(GenericGpuComputeJobComponent)
  16. public:
  17. GenericGpuComputeJobComponent(SceneNode* node)
  18. : SceneComponent(node, getStaticClassId())
  19. {
  20. }
  21. ~GenericGpuComputeJobComponent()
  22. {
  23. }
  24. void setCallback(GenericGpuComputeJobQueueElementCallback callback, const void* userData)
  25. {
  26. ANKI_ASSERT(callback && userData);
  27. m_callback = callback;
  28. m_userData = userData;
  29. }
  30. void setupGenericGpuComputeJobQueueElement(GenericGpuComputeJobQueueElement& el)
  31. {
  32. ANKI_ASSERT(m_callback && m_userData);
  33. el.m_callback = m_callback;
  34. el.m_userData = m_userData;
  35. }
  36. private:
  37. GenericGpuComputeJobQueueElementCallback m_callback = nullptr;
  38. const void* m_userData = nullptr;
  39. };
  40. /// @}
  41. } // end namespace anki