CmGUILabel.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include "CmGUILabel.h"
  2. #include "CmGUIElementStyle.h"
  3. #include "CmTextSprite.h"
  4. #include "CmGUISkin.h"
  5. namespace CamelotEngine
  6. {
  7. GUILabel::GUILabel(GUIWidget* parent, const String& text, const GUISkin* skin)
  8. :GUIElement(parent, skin), mText(text)
  9. {
  10. // This is calling a virtual method but it's okay because we always want the one
  11. // existing on this class.
  12. mStyle = skin->getStyle(getGUITypeName());
  13. mTextSprite = CM_NEW(TextSprite, PoolAlloc) TextSprite(text, mStyle->font, mStyle->fontSize);
  14. }
  15. GUILabel::~GUILabel()
  16. {
  17. CM_DELETE(mTextSprite, TextSprite, PoolAlloc);
  18. }
  19. UINT32 GUILabel::getNumRenderElements() const
  20. {
  21. return mTextSprite->getNumRenderElements();
  22. }
  23. const HMaterial& GUILabel::getMaterial(UINT32 renderElementIdx) const
  24. {
  25. return mTextSprite->getMaterial(renderElementIdx);
  26. }
  27. UINT32 GUILabel::getNumQuads(UINT32 renderElementIdx) const
  28. {
  29. return mTextSprite->getNumQuads(renderElementIdx);
  30. }
  31. void GUILabel::fillBuffer(Vector2* vertices, Vector2* uv, UINT32* indices, UINT32 startingQuad, UINT32 maxNumQuads, UINT32 renderElementIdx) const
  32. {
  33. mTextSprite->fillBuffer(vertices, uv, indices, startingQuad, maxNumQuads, renderElementIdx);
  34. }
  35. const String& GUILabel::getGUITypeName()
  36. {
  37. static String typeName = "Label";
  38. return typeName;
  39. }
  40. }