CmTechnique.h 944 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include "CmPrerequisites.h"
  3. #include "CmIReflectable.h"
  4. namespace CamelotFramework
  5. {
  6. class CM_EXPORT Technique : public IReflectable
  7. {
  8. public:
  9. Technique(const String& renderSystem, const String& renderer);
  10. PassPtr addPass();
  11. void removePass(UINT32 idx);
  12. PassPtr getPass(UINT32 idx) const;
  13. UINT32 getNumPasses() const { return (UINT32)mPasses.size(); }
  14. bool isSupported() const;
  15. private:
  16. String mRenderSystem;
  17. String mRenderer;
  18. Vector<PassPtr>::type mPasses;
  19. /************************************************************************/
  20. /* RTTI */
  21. /************************************************************************/
  22. /**
  23. * @brief Serialization only constructor.
  24. */
  25. Technique() {}
  26. public:
  27. friend class TechniqueRTTI;
  28. static RTTITypeBase* getRTTIStatic();
  29. virtual RTTITypeBase* getRTTI() const;
  30. };
  31. }