3 #include "ParaVector2.h" 4 #include <unordered_map> 13 enum class TextVAlignment
21 enum class TextHAlignment
38 static const int DistanceFieldFontSize;
48 enum class LabelType {
56 Label(
FontAtlas *atlas =
nullptr, TextHAlignment hAlignment = TextHAlignment::LEFT,
57 TextVAlignment vAlignment = TextVAlignment::TOP,
bool useDistanceField =
false,
bool useA8Shader =
false);
61 bool setTTFConfig(
const TTFConfig& ttfConfig);
63 FontAtlas* getFontAtlas() {
return _fontAtlas; }
67 virtual void setPosition(
float x,
float y);
69 void setWidth(
unsigned int width) { setDimensions(width, _labelHeight); }
70 unsigned int getWidth()
const {
return _labelWidth; }
72 void setHeight(
unsigned int height) { setDimensions(_labelWidth, height); }
73 unsigned int getHeight()
const {
return _labelHeight; }
75 void setDimensions(
unsigned int width,
unsigned int height);
76 const Size& getDimensions()
const {
return _labelDimensions; }
79 int getStringLength()
const;
82 virtual void setScale(
float scale);
83 virtual void setScaleX(
float scaleX);
84 virtual void setScaleY(
float scaleY);
85 virtual float getScaleX()
const;
86 virtual float getScaleY()
const;
88 void setContentSize(
const Size & var);
90 void setAlignment(TextHAlignment hAlignment) { setAlignment(hAlignment, _vAlignment); }
91 TextHAlignment getTextAlignment()
const {
return _hAlignment; }
93 void setAlignment(TextHAlignment hAlignment, TextVAlignment vAlignment);
95 void setHorizontalAlignment(TextHAlignment hAlignment) { setAlignment(hAlignment, _vAlignment); }
96 TextHAlignment getHorizontalAlignment()
const {
return _hAlignment; }
98 void setVerticalAlignment(TextVAlignment vAlignment) { setAlignment(_hAlignment, vAlignment); }
99 TextVAlignment getVerticalAlignment()
const {
return _vAlignment; }
102 bool computeHorizontalKernings(
const std::u16string& stringToRender);
104 void computeStringNumLines();
107 inline float getPositionX()
const 112 inline float getPositionY()
const 117 void setFontScale(
float s);
119 bool recordPlaceholderInfo(
int spriteIndex);
124 std::string _bmFontPath;
126 bool _isOpacityModifyRGB;
129 bool _systemFontDirty;
130 std::string _systemFont;
131 float _systemFontSize;
132 LabelType _currentLabelType;
135 std::vector<LetterInfo> _lettersInfo;
140 bool _compatibleMode;
146 float _additionalKerning;
147 float _commonLineHeight;
148 bool _lineBreakWithoutSpaces;
149 int * _horizontalKernings;
151 unsigned int _maxLineWidth;
152 Size _labelDimensions;
153 unsigned int _labelWidth;
154 unsigned int _labelHeight;
155 TextHAlignment _hAlignment;
156 TextVAlignment _vAlignment;
159 std::u16string _currentUTF16String;
160 std::string _originalUTF8String;
164 bool _useDistanceField;
170 GLuint _uniformEffectColor;
171 GLuint _uniformTextColor;
176 int _shadowBlurRadius;
178 float _shadowOpacity;
186 bool _blendFuncDirty;
198 void setFontAtlas(
FontAtlas* atlas,
bool distanceFieldEnabled =
false,
bool useA8Shader =
false);
209 static bool createStringSprites(
Label* label);
210 static bool multilineText(
Label* label);
211 static bool alignText(
Label* label);
RGB color composed of bytes 3 bytes.
Definition: GLType.h:91
Definition: GLFontAtlas.h:14
CCRect _reusedRect
used for optimization
Definition: GLLabel.h:143
Base class for a reference counted asset.
Definition: PERef.h:55
different physics engine has different winding order.
Definition: EventBinding.h:32
Standard 2-dimensional vector.
Definition: ParaVector2.h:16
Definition: GLLabel.h:206
RGBA color composed of 4 floats.
Definition: GLType.h:162
RGBA color composed of 4 bytes.
Definition: GLType.h:128