CmDefaultRenderQueue.cpp 754 B

1234567891011121314151617181920212223242526
  1. #include "CmDefaultRenderQueue.h"
  2. #include "CmRenderOperation.h"
  3. #include "CmMaterial.h"
  4. namespace CamelotFramework
  5. {
  6. void DefaultRenderQueue::sort()
  7. {
  8. // Just pass-through for now
  9. for(auto& renderOp : mRenderOperations)
  10. {
  11. UINT32 numPasses = renderOp.material->getNumPasses();
  12. for(UINT32 i = 0; i < numPasses; i++)
  13. {
  14. mSortedRenderOps.push_back(SortedRenderOp());
  15. SortedRenderOp& sortedOp = mSortedRenderOps.back();
  16. sortedOp.baseOperation = &renderOp;
  17. sortedOp.passIdx = i;
  18. }
  19. }
  20. // TODO - Actually do some sorting
  21. // Note: When sorting make sure not to change order of unsorted elements. Some outside managers (like overlay and GUI) will provide render ops which are already sorted
  22. }
  23. }