CmRenderQueue.h 655 B

1234567891011121314151617181920212223242526272829303132
  1. #pragma once
  2. #include "CmPrerequisites.h"
  3. namespace CamelotFramework
  4. {
  5. struct CM_EXPORT SortedRenderOp
  6. {
  7. SortedRenderOp()
  8. :baseOperation(nullptr), passIdx(0)
  9. { }
  10. const RenderOperation* baseOperation;
  11. UINT32 passIdx;
  12. };
  13. class CM_EXPORT RenderQueue
  14. {
  15. public:
  16. RenderQueue();
  17. void add(const HMaterial& material, const RenderOpMesh& mesh, const Vector3& worldPosForSort);
  18. void clear();
  19. virtual void sort() = 0;
  20. const Vector<SortedRenderOp>::type& getSortedRenderOps() const;
  21. protected:
  22. Vector<RenderOperation>::type mRenderOperations;
  23. Vector<SortedRenderOp>::type mSortedRenderOps;
  24. };
  25. }