GenericGpuComputeJobComponent.h 1.1 KB

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