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 <Corrade/Containers/Pointer.h>
14#include <Magnum/Text/Renderer.h>
15#include <Magnum/Math/Matrix4.h>
16#include <Magnum/Math/Matrix3.h>
17#include <Magnum/Shaders/Shaders.h>
18#include <Magnum/GL/Mesh.h>
19
20#include <fsCore/fsBaseTypes.h>
22#include <fsCore/fsRect.h>
23#include <fsCore/fsStr.h>
24
25#include "fsINative.h"
26
27class fsIFont;
28class fsRect;
29class fsSColour;
30class fsAffineMtx2d;
31class fsStr;
32
33
34class fsCNativeTextSprite : public fsINative
35{
37
38public:
39
40 static Magnum::Shaders::DistanceFieldVectorGL3D *mShader;
41
42 void outlineSet(const fsSColour4B& pOutline, fsF32 pSize) const;
43 void shadowSet(const fsSColour4B& pShadow, fsVec2d pOffset, fsF32 pBlurRadius) const;
44 void glowSet(const fsSColour4B& pGlow) const;
45
46 void alignmentSet(fsS32 pAlignH, fsS32 pAlignV);
47 void initialise(const fsStr& pText, fsIFont* pFont);
48
50
51 void formattingRectSizeSet(const fsRect& pFormattingRect);
52 fsStr textGet() const;
53 void textSet(const fsStr& pText);
54
56
57protected:
58
59 void renderDo() override;
60 void matrixApplyDo(const fsAffineMtx2d& pRenderMatrix) override;
61 void colourSetDo(const fsSColour4B& pColour) override;
62
64
65private:
66
67 void softWrap();
68
69 fsRect mBoundingBox;
70
71 fsIFont* mFont;
72 fsAffineMtx2d mat;
73
74 fsStr mText;
75
76 Corrade::Containers::Pointer<Magnum::Text::Renderer2D> _dynamicText;
77 Magnum::GL::Mesh _myText{Magnum::NoCreate};
78 Magnum::GL::Buffer mVertices, mIndices;
79
80 Magnum::Math::Matrix4<fsF32> mRenderMatrix;
81 Magnum::GL::Mesh _mesh;
82
83 fsS32 mScreenWidth, mScreenHeight;
84};
85
86#endif
Definition fsAffineMtx2d.h:27
Definition fsCNativeTextSprite.h:35
void textSet(const fsStr &pText)
void shadowSet(const fsSColour4B &pShadow, fsVec2d pOffset, fsF32 pBlurRadius) const
void formattingRectSizeSet(const fsRect &pFormattingRect)
void colourSetDo(const fsSColour4B &pColour) override
friend class fsCNativeTextSpriteRenderData
Definition fsCNativeTextSprite.h:36
fsS32 stringWidthInPixelsGet() const
void glowSet(const fsSColour4B &pGlow) const
void renderDo() override
void outlineSet(const fsSColour4B &pOutline, fsF32 pSize) const
void matrixApplyDo(const fsAffineMtx2d &pRenderMatrix) override
fsStr textGet() const
static Magnum::Shaders::DistanceFieldVectorGL3D * mShader
Definition fsCNativeTextSprite.h:40
virtual ~fsCNativeTextSprite()
void alignmentSet(fsS32 pAlignH, fsS32 pAlignV)
void initialise(const fsStr &pText, fsIFont *pFont)
Definition fsIFont.h:34
Definition fsINative.h:31
fsF32 mRenderMatrix[16]
Definition fsINative.h:68
Definition fsRect.h:16
Definition fsSColour.h:20
Definition fsStr.h:23
int fsS32
Definition fsBaseTypes.h:20
float fsF32
Definition fsBaseTypes.h:28
Definition fsSColour.h:54
Definition fsVec2d.h:16