RenderQueue.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // Copyright (C) 2009-2023, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #include <AnKi/Renderer/RenderQueue.h>
  6. namespace anki {
  7. U32 RenderQueue::countAllRenderables() const
  8. {
  9. U32 drawableCount = 0;
  10. drawableCount += m_earlyZRenderables.getSize();
  11. drawableCount += m_renderables.getSize();
  12. drawableCount += m_forwardShadingRenderables.getSize();
  13. for(const SpotLightQueueElement& slight : m_spotLights)
  14. {
  15. if(slight.m_shadowRenderQueue)
  16. {
  17. drawableCount += slight.m_shadowRenderQueue->countAllRenderables();
  18. }
  19. }
  20. for(const PointLightQueueElement& plight : m_pointLights)
  21. {
  22. for(U i = 0; i < 6; ++i)
  23. {
  24. if(plight.m_shadowRenderQueues[i])
  25. {
  26. drawableCount += plight.m_shadowRenderQueues[i]->countAllRenderables();
  27. }
  28. }
  29. }
  30. if(m_reflectionProbeForRefresh)
  31. {
  32. for(U i = 0; i < 6; ++i)
  33. {
  34. if(m_reflectionProbeForRefresh->m_renderQueues[i])
  35. {
  36. drawableCount += m_reflectionProbeForRefresh->m_renderQueues[i]->countAllRenderables();
  37. }
  38. }
  39. }
  40. return drawableCount;
  41. }
  42. } // end namespace anki