/********************************************************************
*
* Created: 10/3/2014 17:00
*
* File: fsCTextSpriteComponent.h
*
* Author: Mick Waites
*
* Purpose: A component which renders text to the display.
*
*********************************************************************/
#ifndef fsCTextSpriteComponenthdr
#define fsCTextSpriteComponenthdr
#include <fsCore/src/fsCUniqueId.h>
#include <fsCore/fsStr.h>
#include "fsITextSpriteComponent.h"
class fsIFont;
class fsCTextSprite;
class fsCTextSpriteComponent : public fsITextSpriteComponent
{
friend class fsCComponentFactory;
friend class fsCVertexStreamTextSpriteRenderData;
public:
static const fsCUniqueId mTypeId;
protected:
void outlineSetDo(const fsSColour4B& pOutline, fsF32 pSize) const override;
void shadowSetDo(const fsSColour4B& pShadow, fsVec2d pOffset, fsF32 pBlurRadius) const override;
void glowSetDo(const fsSColour4B& pGlow) const override;
void alignmentSetDo(eHORIZONTAL_ALIGNMENT pAlignH, eVERTICAL_ALIGNMENT pAlignV) override;
void initialiseDo(const fsStr& pText, fsIFont* pFont) override;
fsS32 stringWidthInPixelsGetDo() const override;
void formattingRectSizeSetDo(const fsRect& pFormattingRect) override;
void colourSetDo(const fsSColour4B& pColour) override;
fsStr textGetDo() const override;
void textSetDo(const fsStr& pText) override;
static fsIComponent* create(fsCEntity* pParent);
void initialiseFromVariableTableDo(const fsCVariableTable& pVars) override;
void renderDo() override;
void matrixApplyDo() override;
fsCTextSpriteComponent(fsCEntity* pParent);
virtual ~fsCTextSpriteComponent();<--- Destructor in derived class
fsCTextSprite* mTextSprite;
fsS32 mHAlign;
private:
void textAndFontInitFromVarTable(const fsCVariableTable& pVars);
void sizeInitFromVarTable(const fsCVariableTable& pVars);
void alignmentInitFromVarTable(const fsCVariableTable& pVars);
void colourInitFromVarTable(const fsCVariableTable& pVars);
};
#endif