RenderQueue.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Copyright (C) 2009-2020, 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. {
  8. PtrSize RenderQueue::countAllRenderables() const
  9. {
  10. PtrSize drawableCount = 0;
  11. drawableCount += m_earlyZRenderables.getSize();
  12. drawableCount += m_renderables.getSize();
  13. drawableCount += m_forwardShadingRenderables.getSize();
  14. for(const SpotLightQueueElement* slight : m_shadowSpotLights)
  15. {
  16. if(slight->m_shadowRenderQueue)
  17. {
  18. drawableCount += slight->m_shadowRenderQueue->countAllRenderables();
  19. }
  20. }
  21. for(const PointLightQueueElement* plight : m_shadowPointLights)
  22. {
  23. for(U i = 0; i < 6; ++i)
  24. {
  25. if(plight->m_shadowRenderQueues[i])
  26. {
  27. drawableCount += plight->m_shadowRenderQueues[i]->countAllRenderables();
  28. }
  29. }
  30. }
  31. for(const ReflectionProbeQueueElement& probe : m_reflectionProbes)
  32. {
  33. for(U i = 0; i < 6; ++i)
  34. {
  35. if(probe.m_renderQueues[i])
  36. {
  37. drawableCount += probe.m_renderQueues[i]->countAllRenderables();
  38. }
  39. }
  40. }
  41. return drawableCount;
  42. }
  43. } // end namespace anki