CmGUIWidget.h 732 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include "CmPrerequisites.h"
  3. #include "CmOverlay.h"
  4. namespace CamelotEngine
  5. {
  6. class CM_EXPORT GUIWidget : public Overlay
  7. {
  8. public:
  9. virtual ~GUIWidget();
  10. virtual void render(const Camera* camera, DeferredRenderContextPtr& renderContext) const;
  11. protected:
  12. friend class GameObject;
  13. GUIWidget(const HGameObject& parent);
  14. GUILabel* addLabel(const String& text);
  15. void setSkin(const GUISkin* skin);
  16. const GUISkin* getGUISkin() const;
  17. private:
  18. void updateMeshes() const;
  19. vector<GUIElement*>::type mElements;
  20. mutable vector<HMesh>::type mCachedMeshes;
  21. mutable vector<HMaterial>::type mCachedMaterials;
  22. const GUISkin* mSkin;
  23. static GUISkin DefaultSkin;
  24. };
  25. }