Fission FSN
Loading...
Searching...
No Matches
fsCNativeTextSprite.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: fsCNativeTextSprite.h
4*
5* Purpose: Cocos2d-x retained text sprite - needs to be added
6* to a scene
7*
8*********************************************************************/
9
10#ifndef fsCNativeTextSpriteehdr
11#define fsCNativeTextSpriteehdr
12
13#include <fsCore/fsBaseTypes.h>
14#include <fsCore/fsStr.h>
15#include <fsCore/fsSColour.h>
16#include <fsCore/fsRect.h>
17
18#include "fsINative.h"
19
20#include <2d/Label.h>
21
22#ifdef AXMOL_V3
23 #include <ui/RichText.h>
24#else
25 #include <ui/UIRichText.h>
26#endif
27
28class fsIFont;
29class fsRect;
30class fsSColour;
31class fsAffineMtx2d;
32class fsStr;
33
35{
37
38public:
39
40 void outlineSet(const fsSColour4B& pOutline, fsF32 pSize) const;
41 void shadowSet(const fsSColour4B& pShadow, fsVec2d pOffset, fsF32 pBlurRadius) const;
42 void glowSet(const fsSColour4B& pGlow) const;
43
44 void alignmentSet(fsS32 pAlignH, fsS32 pAlignV);
45 void initialise(const fsStr& pText, fsIFont* pFont);
46
48
49 void formattingRectSizeSet(const fsRect& pFormattingRect);
50 fsStr textGet() const;
51 void textSet(const fsStr& pText);
52
53 virtual ~fsCNativeTextSprite();
54
55protected:
56
57 void renderDo() override;
58 void matrixApplyDo(const fsAffineMtx2d& pRenderMatrix) override;
59 void colourSetDo(const fsSColour4B& pColour) override;
60
62
63private:
64
65 ax::Node* implGet() const override;
66
67 ax::Label* labelImplGet();
68 void textApply(const fsStr& pText, fsBool pForceRebuild);
69 void richTextRebuild();
70 void richTextFormattingRectApply();
71
72 ax::Label* mImpl;
73 ax::ui::RichText* mRichImpl;
74 fsBool mUseRichText;
75
76 ax::TTFConfig* mConfig;
77 ax::FontAtlas* mFontAtlas;
78
79 fsStr mLastText;
80 fsSColour4B mDefaultColour;
81 fsRect mFormattingRect;
82 fsBool mHasFormattingRect;
83 fsS32 mAlignH;
84 fsS32 mAlignV;
85
86 // outlineSet()/shadowSet()/glowSet() are const (no mImpl to apply to yet is a legitimate
87 // call before the Label exists - e.g. a label whose initial text is empty), so these need
88 // to be mutable to cache the values for labelImplGet() to replay once mImpl is created.
89 mutable fsBool mHasOutline;
90 mutable fsSColour4B mOutlineColour;
91 mutable fsF32 mOutlineSize;
92
93 mutable fsBool mHasShadow;
94 mutable fsSColour4B mShadowColour;
95 mutable fsVec2d mShadowOffset;
96 mutable fsF32 mShadowBlurRadius;
97
98 mutable fsBool mHasGlow;
99 mutable fsSColour4B mGlowColour;
100
101 ax::Mat4 mRenderMatrix;
102};
103
104#endif
Definition fsAffineMtx2d.h:27
void textSet(const fsStr &pText)
Definition fsCNativeTextSprite.cpp:323
void shadowSet(const fsSColour4B &pShadow, fsVec2d pOffset, fsF32 pBlurRadius) const
Definition fsCNativeTextSprite.cpp:90
fsCNativeTextSprite()
Definition fsCNativeTextSprite.cpp:429
virtual ~fsCNativeTextSprite()
Definition fsCNativeTextSprite.cpp:454
void formattingRectSizeSet(const fsRect &pFormattingRect)
Definition fsCNativeTextSprite.cpp:267
void colourSetDo(const fsSColour4B &pColour) override
Definition fsCNativeTextSprite.cpp:123
friend class fsCNativeTextSpriteRenderData
Definition fsCNativeTextSprite.h:36
fsS32 stringWidthInPixelsGet() const
Definition fsCNativeTextSprite.cpp:245
void glowSet(const fsSColour4B &pGlow) const
Definition fsCNativeTextSprite.cpp:72
void renderDo() override
Definition fsCNativeTextSprite.cpp:115
void outlineSet(const fsSColour4B &pOutline, fsF32 pSize) const
Definition fsCNativeTextSprite.cpp:51
void matrixApplyDo(const fsAffineMtx2d &pRenderMatrix) override
Definition fsCNativeTextSprite.cpp:197
fsStr textGet() const
Definition fsCNativeTextSprite.cpp:318
void alignmentSet(fsS32 pAlignH, fsS32 pAlignV)
Definition fsCNativeTextSprite.cpp:208
void initialise(const fsStr &pText, fsIFont *pFont)
Definition fsCNativeTextSprite.cpp:234
Definition fsIFont.h:34
fsINative()=default
Definition fsINative.cpp:72
Definition fsRect.h:16
Definition fsSColour.h:20
Definition fsStr.h:23
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
float fsF32
Definition fsBaseTypes.h:28
struct _ttfConfig TTFConfig
Definition fsCFont.h:18
Definition fsSColour.h:54
Definition fsVec2d.h:16