2 #ifndef _YI_TEXT_SCENE_NODE_H_ 3 #define _YI_TEXT_SCENE_NODE_H_ 180 bool SetFont(
const CYIString &fontFamilyName,
const CYIString &fontStyle, uint32_t uFirstCodepointIndex = 0, uint32_t uLength = std::numeric_limits<uint32_t>::max());
189 void SetFontID(
ssize_t nFontID, uint32_t uFirstCodepointIndex = 0, uint32_t uLength = std::numeric_limits<uint32_t>::max());
202 bool SetFontFamily(
const CYIString &fontFamilyName, uint32_t uFirstCodepointIndex = 0, uint32_t uLength = std::numeric_limits<uint32_t>::max());
215 bool SetFontStyle(
const CYIString &fontStyleName, uint32_t uFirstCodepointIndex = 0, uint32_t uLength = std::numeric_limits<uint32_t>::max());
222 void SetFontSize(int32_t nFontSize, uint32_t uFirstCodepointIndex = 0, uint32_t uLength = std::numeric_limits<uint32_t>::max());
229 void SetFontColor(
const CYIColor &Color, uint32_t uFirstCodepointIndex = 0, uint32_t uLength = std::numeric_limits<uint32_t>::max());
236 void SetAllCaps(
bool bEnable, uint32_t uFirstCodepointIndex = 0, uint32_t uLength = std::numeric_limits<uint32_t>::max());
243 void SetScriptMode(
YI_SCRIPT_MODE eScriptMode, uint32_t uFirstCodepointIndex = 0, uint32_t uLength = std::numeric_limits<uint32_t>::max());
250 void SetBaselineShift(int32_t nBaselineShift, uint32_t uFirstCodepointIndex = 0, uint32_t uLength = std::numeric_limits<uint32_t>::max());
257 void SetTracking(int32_t nBaselineShift, uint32_t uFirstCodepointIndex = 0, uint32_t uLength = std::numeric_limits<uint32_t>::max());
264 void SetKerning(int32_t nBaselineShift, uint32_t uFirstCodepointIndex = 0, uint32_t uLength = std::numeric_limits<uint32_t>::max());
271 void SetLeading(int32_t uLeading, uint32_t uFirstCodepointIndex = 0, uint32_t uLength = std::numeric_limits<uint32_t>::max());
285 virtual void SetSize(
const glm::vec3 &vSize,
bool bDirtyLayout =
true)
override;
341 void SetBoxTypeOn(int32_t nBoxWidth, int32_t nBoxHeight);
361 int32_t
GetFontSize(uint32_t uCodepointIndex = 0)
const;
363 bool IsAllCaps(uint32_t uCodepointIndex = 0)
const;
365 int32_t
GetLeading(uint32_t uCodepointIndex = 0)
const;
368 int32_t
GetTracking(uint32_t uCodepointIndex = 0)
const;
369 int32_t
GetKerning(uint32_t uCodepointIndex = 0)
const;
396 void SetTextStyles(
const std::vector<YI_TEXT_STYLE_DEF> &styles);
464 int32_t
GetIndexOfPosition(
float fX,
float fY,
float fHorizontalPixelRatio,
float fVerticalPixelRatio);
545 void CreateTextMesh();
547 float m_fTextOffsetX;
548 std::shared_ptr<const CYITextLayout> m_pCachedTextLayout;
558 #ifdef YI_FUNCTION_SPECIALIZATION_FULLY_SUPPORTED 562 return pObject ? (pObject->CanCastTo<
CYITextSceneNode>() ? static_cast<const CYITextSceneNode *>(pObject) : nullptr) : nullptr;
566 #endif // _YI_TEXT_SCENE_NODE_H_ CYIString m_text
Definition: YiTextSceneNode.h:111
void SetMultiline(bool bEnable)
YI_TEXT_LINE_STYLE GetLineStyle(uint32_t uCodepointIndex=0) const
uint32_t m_uLastCodepointIndex
Definition: YiTextSceneNode.h:104
static void UpdateTextForAllCaps(const YI_TEXT_DEF &rTextDef, CYIString &rText)
int32_t GetIndexOfPosition(float fX, float fY, float fHorizontalPixelRatio, float fVerticalPixelRatio)
void SetTextStyle(const YI_TEXT_STYLE_DEF &style, uint32_t uFirstCodepointIndex)
YI_SCRIPT_MODE m_eScriptMode
Definition: YiTextSceneNode.h:99
Definition: YiSceneNode.h:356
static bool HasAllCaps(const YI_TEXT_DEF &rTextDef)
int32_t GetBoxHeight() const
void SetUseFontTables(bool bUseFontTables)
void SetLeading(int32_t uLeading, uint32_t uFirstCodepointIndex=0, uint32_t uLength=std::numeric_limits< uint32_t >::max())
void SetFontColor(const CYIColor &Color, uint32_t uFirstCodepointIndex=0, uint32_t uLength=std::numeric_limits< uint32_t >::max())
void ResetPerCharacterStyles()
const YI_TEXT_STYLE_DEF & GetTextStyle(uint32_t uCodepointIndex) const
bool m_bIsAllCaps
Definition: YiTextSceneNode.h:97
Definition: YiPredef.h:234
void SetTextStyles(const std::vector< YI_TEXT_STYLE_DEF > &styles)
const CYIString & GetText() const
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
virtual void WorldSurfaceScaleUpdated() override
int32_t GetLeading(uint32_t uCodepointIndex=0) const
void SetTracking(int32_t nBaselineShift, uint32_t uFirstCodepointIndex=0, uint32_t uLength=std::numeric_limits< uint32_t >::max())
virtual void UpdateEnd() override
virtual ~CYITextSceneNode()
int32_t m_nLeading
Definition: YiTextSceneNode.h:96
bool m_bIsBoxType
Definition: YiTextSceneNode.h:540
void SetXJustify(X_JUSTIFY eXJustify)
void SetBaselineShift(int32_t nBaselineShift, uint32_t uFirstCodepointIndex=0, uint32_t uLength=std::numeric_limits< uint32_t >::max())
int32_t m_nKerning
Definition: YiTextSceneNode.h:102
#define YI_TYPE_BASES(...)
Definition: YiRtti.h:350
const CYIString & GetFontStyle(uint32_t uCodepointIndex=0) const
bool SetFont(const CYIString &fontFamilyName, const CYIString &fontStyle, uint32_t uFirstCodepointIndex=0, uint32_t uLength=std::numeric_limits< uint32_t >::max())
bool m_bEllipses
Definition: YiTextSceneNode.h:115
X_JUSTIFY
Definition: YiTextSceneNode.h:80
virtual void Measure(const MeasureSpec &widthSpec, const MeasureSpec &heightSpec, const MeasureSpec &depthSpec) override
int32_t m_nFontSize
Definition: YiTextSceneNode.h:95
virtual void UpdateTextRect()
const CYIColor & GetFontColor(uint32_t uCodepointIndex=0) const
Definition: YiTextSceneNode.h:83
int32_t GetKerning(uint32_t uCodepointIndex=0) const
int32_t m_nTracking
Definition: YiTextSceneNode.h:101
bool m_bMultiline
Definition: YiTextSceneNode.h:114
int32_t GetFontSize(uint32_t uCodepointIndex=0) const
bool SetFontStyle(const CYIString &fontStyleName, uint32_t uFirstCodepointIndex=0, uint32_t uLength=std::numeric_limits< uint32_t >::max())
virtual YI_FLOAT_RECT_REL CalculateGlyphBox()
virtual void ApplyMeasurements() override
Definition: YiTextMarkupParser.h:15
CYIColor m_Color
Definition: YiTextSceneNode.h:103
const std::vector< YI_TEXT_STYLE_DEF > & GetTextStyles() const
Definition: YiTextSceneNode.h:107
YI_TEXT_LINE_STYLE m_eTextLineStyle
Definition: YiTextSceneNode.h:98
bool m_bTextRectDirty
Definition: YiTextSceneNode.h:541
X_JUSTIFY m_XJustify
Definition: YiTextSceneNode.h:113
virtual void TransformUpdated() override
int32_t GetBaselineShift(uint32_t uCodepointIndex=0) const
int32_t GetLength() const
std::vector< YI_TEXT_STYLE_DEF > m_styles
Definition: YiTextSceneNode.h:117
bool operator!=(const YI_TEXT_STYLE_DEF &other) const
ssize_t m_nFontID
Definition: YiTextSceneNode.h:94
A scene node is the base type for all nodes which are used by the scene manager; it is an integral pa...
Definition: YiSceneNode.h:114
void SetAllCaps(bool bEnable, uint32_t uFirstCodepointIndex=0, uint32_t uLength=std::numeric_limits< uint32_t >::max())
bool m_bUsesFontTables
Definition: YiTextSceneNode.h:542
Definition: YiPredef.h:273
A scene node type that renders text.
Definition: YiTextSceneNode.h:77
YI_SCRIPT_MODE GetScriptMode(uint32_t uCodepointIndex=0) const
bool GetMultiline() const
virtual CYIString GetDumpTreeString() const override
virtual void PrepareToDraw()=0
CYIString m_markedUpText
Definition: YiTextSceneNode.h:533
Base class for abstracting the layout for text.
Definition: YiTextLayout.h:33
float GetTextOffsetX() const
void SetPointTypeOn(int32_t nWidth=0)
void SetText(const CYIString &rText)
void SetMarkedUpText(const CYIString &rMarkedUpText, CYITextMarkupParser *pMarkupParser=nullptr, const CYICustomMarkupTagsProvider *pExternalTagsProvider=nullptr)
virtual YI_FLOAT_RECT GetRectForTextRange(int32_t nStartIndex, int32_t nEndIndex, float fHorizontalPixelRatio, float fVerticalPixelRatio)
void SetLineStyle(YI_TEXT_LINE_STYLE eTextLineStyle, uint32_t uFirstCodepointIndex=0, uint32_t uLength=std::numeric_limits< uint32_t >::max())
YI_RECT_REL m_MeasuredBoxRect
Definition: YiTextSceneNode.h:536
int32_t GetBoxWidth() const
const CYIString & GetMarkedUpText() const
int32_t GetTracking(uint32_t uCodepointIndex=0) const
void SetTextOffsetX(float fTextOffsetX)
virtual void SetSize(const glm::vec3 &vSize, bool bDirtyLayout=true) override
YI_TEXT_LINE_STYLE
Definition: YiTextEngine.h:68
float m_fTextMaxWidth
Definition: YiTextSceneNode.h:538
void SetEllipsisStyle(const YI_TEXT_STYLE_DEF &style)
bool m_bUserSpecifiedWidth
Definition: YiTextSceneNode.h:116
bool SetFontFamily(const CYIString &fontFamilyName, uint32_t uFirstCodepointIndex=0, uint32_t uLength=std::numeric_limits< uint32_t >::max())
int32_t m_nBaselineShift
Definition: YiTextSceneNode.h:100
void SetScriptMode(YI_SCRIPT_MODE eScriptMode, uint32_t uFirstCodepointIndex=0, uint32_t uLength=std::numeric_limits< uint32_t >::max())
bool IsAllCaps(uint32_t uCodepointIndex=0) const
YI_RECT_REL m_LayoutRect
Definition: YiTextSceneNode.h:535
ssize_t GetFontID(uint32_t uCodepointIndex=0) const
const CYIString & GetFontFamily(uint32_t uCodepointIndex=0) const
int ssize_t
Definition: YiPredefWin32.h:133
YI_SCRIPT_MODE
Definition: YiTextEngine.h:53
void SetFontID(ssize_t nFontID, uint32_t uFirstCodepointIndex=0, uint32_t uLength=std::numeric_limits< uint32_t >::max())
Definition: YiPredef.h:342
bool m_bTextBufferDirty
Definition: YiTextSceneNode.h:539
Struct used to pass information when rendering text.
Definition: YiTextEngine.h:97
A class used to represent a color value.
Definition: YiColor.h:31
Definition: YiTextSceneNode.h:84
YI_TEXT_RENDER_INFO CreateTextRenderInfo()
YI_RECT_REL m_BoxRect
Definition: YiTextSceneNode.h:534
X_JUSTIFY GetXJustify() const
void SetTextMaxWidth(float fMaxWidth)
YI_FLOAT_RECT CalculateTightTextRect()
YI_TEXT_DEF m_TextDef
Definition: YiTextSceneNode.h:532
void SetKerning(int32_t nBaselineShift, uint32_t uFirstCodepointIndex=0, uint32_t uLength=std::numeric_limits< uint32_t >::max())
void SetEllipses(bool bEnable)
void SetBoxTypeOn(int32_t nBoxWidth, int32_t nBoxHeight)
YI_RECT_REL m_PreferredBoxRect
Definition: YiTextSceneNode.h:537
const std::shared_ptr< const CYITextLayout > & GetTextLayout(const YI_TEXT_RENDER_INFO &textRenderInfo)
Definition: YiTextSceneNode.h:82
Definition: YiTextSceneNode.h:87
void SetFontSize(int32_t nFontSize, uint32_t uFirstCodepointIndex=0, uint32_t uLength=std::numeric_limits< uint32_t >::max())
int32_t m_nLength
Definition: YiTextSceneNode.h:112
bool IsUsingFontTables() const
bool operator==(const YI_TEXT_STYLE_DEF &other) const