CmRenderQueue.cpp 834 B

123456789101112131415161718192021222324252627282930313233
  1. #include "CmRenderQueue.h"
  2. #include "CmRenderOperation.h"
  3. namespace CamelotFramework
  4. {
  5. RenderQueue::RenderQueue()
  6. {
  7. }
  8. void RenderQueue::clear()
  9. {
  10. mRenderOperations.clear();
  11. mSortedRenderOps.clear();
  12. }
  13. void RenderQueue::add(const MaterialPtr& material, const MeshBasePtr& mesh, UINT32 submeshIdx, const Vector3& worldPosForSort)
  14. {
  15. // TODO - Make sure RenderOperations are cached so we dont allocate memory for them every frame
  16. mRenderOperations.push_back(RenderOperation());
  17. RenderOperation& renderOp = mRenderOperations.back();
  18. renderOp.material = material;
  19. renderOp.mesh = mesh;
  20. renderOp.worldPosition = worldPosForSort;
  21. renderOp.submeshIdx = submeshIdx;
  22. }
  23. const Vector<SortedRenderOp>::type& RenderQueue::getSortedRenderOps() const
  24. {
  25. return mSortedRenderOps;
  26. }
  27. }