A scene node type that renders text.
The text scene node class is a primitive class that renders text using specific styling rules.
Three variants are available: CYIBitmapTextSceneNode, CYIAtlasTextSceneNode, and CYISDFAtlasTextSceneNode. The CYIBitmapTextSceneNode renders its text as a single bitmap rendered on a single quad mesh, the CYIAtlasTextSceneNode object renders glyphs into an atlas texture with a specialized mesh used to select the texture, while the CYISDFAtlasTextSceneNode object also renders glyphs into an atlas but the algorithm used for rendering the glyphs is specialized for applications that use many different fonts and sizes or that want to use animated text.
Box Text vs Point Text
Text can be configured in two different modes, which affect what bounds the text scene node will render into.
First is Box Text. Box text is the typical use case for text and can be enabled by calling the SetBoxTypeOn function. When in Box Text mode, text will be aligned such that the top of the first character is aligned with the (0,0) position of the text scene node. Box text is configured with a specific box width and box height. When justification is used, the text will be aligned within a box defined by the (0,0) position of the text scene node and the configured box size. Any text whose width exceeds the configured box width will be wrapped onto a second line. If a line does not fit within the configured box height, it will not be rendered. This includes the first line – if the first line does not fit within the configured box size, then nothing will be rendered.
Second is Point Text. Point text is used mostly for labels and can be enabled by calling the SetPointTypeOn() function. When in Point Text mode, text will be aligned horizontally around the (0,0) position, taking justification into consideration. For example, if right-justification is used, the right-most rendered character will have its right edge placed at the (0,0) position. Vertically, point text is aligned such that its baseline is at the (0,0) position. Point text can be configured with a maximum width. If the rendered text exceeds this width, the words that do not fit will not be rendered.
Both point text and box text can be configured to insert an ellipsis when some of the text does not fit within the configured bounds.
Sizing
Sizing is used by the layout system to measure and position text scene nodes. The reported size of a text scene node will be the size of the rendered text, not the configured bounds of the text. Furthermore, the reported size of a text scene node will be based on the 'glyph box' of the text rather than on a 'tight fit' of the text. This is to avoid the height of the measured text changing depending on the specific characters that are present in the text. The glyph box is roughly based on the total ascenders and descenders of each line of text (including modified leadings).
Rich Text
Text styles can be set on text scene node. Some of these styles, such as the font size and text color, can be set on a per-character basis. By default, setting those styles will apply to the whole text. However, the setter functions allow for a code point index and length to be provided so that the specific style is applied only to a range of characters. The code point index represent a character index in the text string. These are based on character code points rather than bytes since a character code point may be represented by multiple bytes.
The current style for a specific code point can be accessed using the getters (such as GetFontID ) while specifying a code point index to fetch the style for. If no code point index is specified, the style of the first character in the text is returned.
A specific style can also be set for the 'ellipsis' character. By default, the style of the ellipsis will be the style of the last character in the text (note: not the style of the last rendered character!). To specify a style for the ellipsis regardless of what other styles are present on the text, set a style of length 1 at code point index CYITextEngine::s_textEllipsisCodepointIndex.
Notes about the "em" Unit
An em is a unit in the field of typography, equal to the currently specified point size. For example, one em in a 16-point typeface is 16 points. Therefore, this unit is the same for all typefaces at a given point size.
Notes about Code Points
A code point is a character and can be represented by one or more code units depending on the encoding. A code unit is the number of bits an encoding uses. For example, UTF-8 would use 8 units (or bits) and UTF-16 would use 16 units.
Node Properties Specification
Though this class is not a CYISceneView, properties can still be set on it (either through code or in the After Effects workflow).
Label | Default value | Accepted values | Description |
---|---|---|---|
text-wrap | normal | none, normal | Specifies if text should wrap when it does not fit in the configured Box Width. Does not apply to Point Text. |
text-overflow | off | off, ellipsis | Specifies if an ellipsis should be rendered when the text does not fit in the configured Box. Does not apply to Point Text. |
leading | auto | positive decimal numbers | Specifies the spacing between lines of text. If absent, line spacing will be calculated from the font size. Does not apply to Point Text. |
markup-parser | youi | none, youi | Specifies the markup parser to use. By default, the You.I text markup parser is used. Set to 'none' to disable parsing of text markup. |
text-placeholder | false | true, false | Specifies if text should be exported. This property only affects third party tools which generate text scene nodes. When set to true, those tools will not export the user-entered text. |
class | CYIAtlasTextSceneNode | CYIAtlasTextSceneNode, CYIBitmapTextSceneNode, CYISDFAtlasTextSceneNode | Used to select between Atlas, Bitmap and SDF text scene nodes. |
When placed within a layout, the usual layout properties can be set to control the size of text scene nodes.
#include <scenetree/YiTextSceneNode.h>
Classes | |
struct | YI_TEXT_DEF |
struct | YI_TEXT_STYLE_DEF |
Public Types | |
enum | Justification : uint8_t { Justification::Left = 0, Justification::Right, Justification::Center } |
![]() | |
enum | LayoutDirtyFlag : uint8_t { LayoutDirtyFlag::Clean, LayoutDirtyFlag::ChildDirty, LayoutDirtyFlag::Dirty } |
enum | LayoutConfigFetchMode { LayoutConfigFetchMode::DoNotLazyInstantiate = 0, LayoutConfigFetchMode::LazyInstantiate } |
enum | MeasureMode { MeasureMode::Unspecified, MeasureMode::UpTo, MeasureMode::Exactly } |
enum | FetchType { FetchType::Optional = 0, FetchType::Mandatory } |
typedef std::reverse_iterator< Iterator > | ReverseIterator |
typedef uint16_t | DirtyFlag |
![]() | |
enum | SpecialEventTargetType : uint8_t { SpecialEventTargetType::None = 0x00, SpecialEventTargetType::NoPick = 0x20 } |
enum | Phase : uint8_t { Phase::Bubble, Phase::Capture } |
Public Member Functions | |
CYITextSceneNode () | |
virtual | ~CYITextSceneNode () |
float | GetTextWidth () |
float | GetTextHeight () |
YI_FLOAT_RECT | CalculateTightTextRect () |
virtual YI_FLOAT_RECT_REL | CalculateGlyphBox () |
void | SetTextOffsetX (float textOffsetX) |
void | SetTextMaxWidth (float maxWidth) |
bool | SetFont (const CYIString &fontFamilyName, const CYIString &fontStyle, size_t firstCodepointIndex=0, size_t length=std::numeric_limits< size_t >::max()) |
void | SetFontID (ssize_t fontID, size_t firstCodepointIndex=0, size_t length=std::numeric_limits< size_t >::max()) |
bool | SetFontFamily (const CYIString &fontFamilyName, size_t firstCodepointIndex=0, size_t length=std::numeric_limits< size_t >::max()) |
bool | SetFontStyle (const CYIString &fontStyleName, size_t firstCodepointIndex=0, size_t length=std::numeric_limits< size_t >::max()) |
void | SetFontSize (int32_t fontSize, size_t firstCodepointIndex=0, size_t length=std::numeric_limits< size_t >::max()) |
void | SetFontColor (const CYIColor &color, size_t firstCodepointIndex=0, size_t length=std::numeric_limits< size_t >::max()) |
void | SetAllCaps (bool enable, size_t firstCodepointIndex=0, size_t length=std::numeric_limits< size_t >::max()) |
void | SetScriptMode (CYITextEngine::ScriptMode scriptMode, size_t firstCodepointIndex=0, size_t length=std::numeric_limits< size_t >::max()) |
void | SetBaselineShift (int32_t baselineShift, size_t firstCodepointIndex=0, size_t length=std::numeric_limits< size_t >::max()) |
void | SetTracking (int32_t baselineShift, size_t firstCodepointIndex=0, size_t length=std::numeric_limits< size_t >::max()) |
void | SetKerning (int32_t baselineShift, size_t firstCodepointIndex=0, size_t length=std::numeric_limits< size_t >::max()) |
void | SetLeading (int32_t leading, size_t firstCodepointIndex=0, size_t length=std::numeric_limits< size_t >::max()) |
void | SetEllipses (bool enable) |
void | SetMaximumNumberOfLines (int32_t numberOfLines) |
void | SetAdjustsFontSizeToFit (bool adjustsFontSizeToFit) |
void | SetMinimumFontScale (float minimumFontScale) |
void | SetMultiline (bool enable) |
virtual void | SetSize (const glm::vec3 &size, bool dirtyLayout=true) override |
void | SetText (const CYIString &text) |
void | SetMarkedUpText (const CYIString &markedUpText, CYITextMarkupParser *pMarkupParser=nullptr, const CYICustomMarkupTagsProvider *pExternalTagsProvider=nullptr) |
void | SetXJustify (Justification xJustify) |
void | SetTrimmingMode (CYITextEngine::TrimmingMode trimmingMode) |
CYITextEngine::TrimmingMode | GetTrimmingMode () const |
void | SetPointTypeOn (int32_t width=0) |
void | SetBoxTypeOn (int32_t boxWidth, int32_t boxHeight) |
void | SetLineStyle (CYITextEngine::LineStyle textLineStyle, size_t firstCodepointIndex=0, size_t length=std::numeric_limits< size_t >::max()) |
float | GetTextOffsetX () const |
const CYIString & | GetText () const |
const CYIString & | GetMarkedUpText () const |
size_t | GetLength () const |
Justification | GetXJustify () const |
bool | GetMultiline () const |
bool | GetEllipses () const |
int32_t | GetMaximumNumberOfLines () const |
bool | GetAdjustsFontSizeToFit () const |
float | GetMinimumFontScale () const |
ssize_t | GetFontID (size_t codepointIndex=0) const |
const CYIString & | GetFontFamily (size_t codepointIndex=0) const |
const CYIString & | GetFontStyle (size_t codepointIndex=0) const |
size_t | GetFontSize (size_t codepointIndex=0) const |
const CYIColor & | GetFontColor (size_t codepointIndex=0) const |
bool | IsAllCaps (size_t codepointIndex=0) const |
CYITextEngine::LineStyle | GetLineStyle (size_t codepointIndex=0) const |
int32_t | GetLeading (size_t codepointIndex=0) const |
CYITextEngine::ScriptMode | GetScriptMode (size_t codepointIndex=0) const |
int32_t | GetBaselineShift (size_t codepointIndex=0) const |
int32_t | GetTracking (size_t codepointIndex=0) const |
int32_t | GetKerning (size_t codepointIndex=0) const |
const std::vector< YI_TEXT_STYLE_DEF > & | GetTextStyles () const |
const YI_TEXT_STYLE_DEF & | GetTextStyle (size_t codepointIndex) const |
void | SetTextStyle (const YI_TEXT_STYLE_DEF &style, size_t firstCodepointIndex) |
void | SetTextStyles (const std::vector< YI_TEXT_STYLE_DEF > &styles) |
void | SetEllipsisStyle (const YI_TEXT_STYLE_DEF &style) |
void | ResetPerCharacterStyles () |
int32_t | GetBoxWidth () const |
int32_t | GetBoxHeight () const |
void | SetUseFontTables (bool useFontTables) |
bool | IsUsingFontTables () const |
bool | IsBoxType () const |
bool | IsPointType () const |
bool | IsTruncated () const |
virtual YI_FLOAT_RECT | GetRectForTextRange (size_t startIndex, size_t endIndex, float horizontalPixelRatio, float verticalPixelRatio) |
CYITextLayout::TextDirection | GetBaseTextDirection () const |
CYITextLayout::TextDirection | GetCharacterTextDirection (size_t characterIndex) const |
bool | IsCharacterRightToLeft (size_t characterIndex) const |
bool | IsBaseRightToLeft () const |
CYITextEngine::PositionInString | GetIndexOfPosition (float x, float y, float horizontalPixelRatio, float verticalPixelRatio) |
CYITextEngine::PositionInString | GetOffsetPosition (CYITextEngine::PositionInString initialPosition, int8_t offset) |
void | SetTextLayoutFactory (std::function< std::unique_ptr< CYITextLayout >()> textLayoutFactory) |
virtual void | Measure (const MeasureSpec &widthSpec, const MeasureSpec &heightSpec, const MeasureSpec &depthSpec) override |
virtual void | ApplyMeasurements () override |
float | GetAdjustedFontSizeScale () |
![]() | |
CYISceneNode () | |
virtual | ~CYISceneNode () |
virtual bool | Init () |
bool | IsInitialized () const |
void | ForceDirty () |
void | SetDirtyFlag (DirtyFlag dirtyFlag) |
DirtyFlag | GetDirtyFlag () const |
DirtyFlag | GetPreviousDirtyFlag () const |
const CYIString & | GetName () const |
CYIString | GetUniqueName () const |
void | SetSceneManager (CYISceneManager *pSceneManager) |
void | SetName (const CYIString &name) |
int32_t | GetID () const |
void | SetID (int32_t id) |
uint64_t | GetUniqueID () const |
bool | AddChild (std::unique_ptr< CYISceneNode > pSceneNode) |
bool | AddChild (std::unique_ptr< CYISceneNode >, size_t index) |
bool | InsertChildAfter (CYISceneNode *pRefNode, std::unique_ptr< CYISceneNode > pSceneNode) |
std::unique_ptr< CYISceneNode > | RemoveChild (CYISceneNode *pSceneNode) |
bool | ReorderChild (size_t fromIndex, size_t toIndex) |
CYITransform * | GetTransform () |
CYISceneNode * | GetParent () const |
bool | ChangeParent (CYISceneNode *pParent) |
CYISceneNode * | GetDrawParent () const |
bool | IsAncestorOf (const CYISceneNode *pNode) const |
CYISceneManager * | GetSceneManager () const |
size_t | GetChildCount () const |
uint32_t | GetChildCountRecursive () const |
CYISceneNode * | GetChild (size_t index) const |
Iterator | begin (Iterator::Mode mode=Iterator::Mode::ImmediateChildren) const |
Iterator | end (Iterator::Mode mode=Iterator::Mode::ImmediateChildren) const |
ReverseIterator | rbegin (Iterator::Mode mode=Iterator::Mode::ImmediateChildren) const |
ReverseIterator | rend (Iterator::Mode mode=Iterator::Mode::ImmediateChildren) const |
CYISceneNode * | GetChild (const CYIString &name) const |
size_t | GetDrawChildCount () const |
CYISceneNode * | GetDrawChild (size_t index) const |
CYISceneNode * | GetDrawChildByID (int32_t id) const |
template<class YI_SCENE_NODE_SUBCLASS > | |
YI_SCENE_NODE_SUBCLASS * | GetChild (uint32_t targetMatchedNodeCount=1) const |
template<class YI_SCENE_NODE_SUBCLASS > | |
std::list< YI_SCENE_NODE_SUBCLASS * > | GetChildren () const |
template<class YI_SCENE_NODE_SUBCLASS > | |
std::list< YI_SCENE_NODE_SUBCLASS * > | GetDrawChildren () const |
size_t | GetIndexOfChild (const CYISceneNode *pSceneNode) const |
size_t | GetIndexOfDrawChild (const CYISceneNode *pSceneNode) const |
void | Show () |
void | Hide () |
void | SetVisibility (bool visible) |
void | SetOpacity (float opacity) |
float | GetCompositeOpacity () const |
float | GetLocalOpacity () const |
bool | IsVisible () const |
bool | IsTrulyVisible () const |
bool | IsPerceptible () const |
CYISceneNode * | GetNode (CYIStringView name) |
CYISceneNode * | GetNode (CYIStringView name, const CYIRuntimeTypeInfo &enforceClassType) |
CYISceneNode * | GetNode (const CYIRuntimeTypeInfo &enforceClassType) |
CYISceneNode * | GetNodeAfterTarget (const CYIRuntimeTypeInfo &enforceClassType, CYISceneNode *pStartAfterTarget) |
template<class YI_SCENE_NODE_SUBCLASS > | |
YI_SCENE_NODE_SUBCLASS * | GetNode (CYIStringView name) |
CYISceneNode * | GetNode (const int32_t id) |
CYISceneNode * | GetNode (const int32_t id, const CYIRuntimeTypeInfo &enforceClassType) |
CYISceneNode * | GetNodeWithUniqueID (uint64_t uniqueID) |
template<class YI_SCENE_NODE_SUBCLASS > | |
bool | FindNode (YI_SCENE_NODE_SUBCLASS *&pNode, CYIStringView nodeName, FetchType type, const CYIString &tag) |
std::list< CYISceneNode * > | GetNodes (CYIStringView name) |
std::list< CYISceneNode * > | GetNodes (int32_t id) |
std::list< CYISceneNode * > | GetNodes (const CYIRuntimeTypeInfo &enforceClassType) |
template<class YI_SCENE_NODE_SUBCLASS > | |
const YI_SCENE_NODE_SUBCLASS * | GetNode (uint32_t targetMatchedNodeCount=1) const |
template<class YI_SCENE_NODE_SUBCLASS > | |
YI_SCENE_NODE_SUBCLASS * | GetNode (uint32_t targetMatchedNodeCount=1) |
void | SetMesh (const std::shared_ptr< CYIMesh > &pMesh) |
bool | SetNPatchBitmap (const std::shared_ptr< CYIBitmap > &pNPatchBitmap) |
void | ClearNPatch () |
void | SetMaterial (const std::shared_ptr< CYIMaterial > &pMaterial, size_t index=0) |
void | AddEffect (const std::shared_ptr< CYIEffect > &pEffect) |
void | RemoveEffect (const std::shared_ptr< CYIEffect > &pEffect) |
size_t | GetEffectCount () const |
const std::shared_ptr< CYIEffect > & | GetEffect (size_t index) const |
void | ConnectEffectsToTimelines (const CYITimelineTrack *pTrack) |
void | AddMask (std::unique_ptr< CYIMask > pMask) |
std::unique_ptr< CYIMask > | RemoveMask (const CYIMask *pMask) |
size_t | GetMaskCount () const |
const CYIMask * | GetMask (size_t index) const |
CYIMask * | GetMask (size_t index) |
const std::shared_ptr< CYIMesh > & | GetMesh () const |
const std::shared_ptr< CYIBitmap > & | GetNPatchBitmap () const |
size_t | GetMaterialCount () const |
const std::shared_ptr< CYIMaterial > & | GetMaterial (size_t index=0) const |
const std::shared_ptr< IYIUniformBufferObject > & | GetShaderUniforms () const |
void | SetMeshTransform (const glm::mat4 &transform) |
void | DestroyChildren () |
glm::mat4 | GetLocalTransform () const |
glm::mat4 | GetWorldTransform () const |
bool | Intersects (const CYISceneNode *pNode) const |
void | SetRenderTarget (const std::shared_ptr< CYIRenderTarget > &pRenderTarget) |
const std::shared_ptr< CYIRenderTarget > & | GetRenderTarget () const |
virtual void | OnPreBuildDrawList (std::vector< IYIRenderer::Command > *pDrawList, std::vector< CYIAbstractCameraSceneNode *> *pDrawWithCameraList) |
virtual void | OnPostBuildDrawList (std::vector< IYIRenderer::Command > *pDrawList) |
const CYIAABB & | GetWorldAABB () const |
const CYIAABB & | GetLocalAABB () const |
void | SetAnchorPoint (const glm::vec3 &anchorPoint) |
void | SetAnchorPoint (float x, float y, float z) |
void | SetAnchorPointX (float x) |
void | SetAnchorPointY (float y) |
void | SetAnchorPointZ (float z) |
void | SetPosition (const glm::vec3 &position) |
void | SetPosition (float x, float y, float z) |
void | SetPositionX (float x) |
void | SetPositionY (float y) |
void | SetPositionZ (float z) |
void | SetRotation (const glm::vec3 &rotation) |
void | SetRotation (float pitchDegrees, float yawDegrees, float rollDegrees) |
void | SetRotationX (float pitchDegrees) |
void | SetRotationY (float yawDegrees) |
void | SetRotationZ (float rollDegrees) |
void | SetOrientation (float pitchDegrees, float yawDegrees, float rollDegrees) |
void | SetOrientation (const glm::quat &orientation) |
void | SetScale (const glm::vec3 &scale) |
void | SetScale (float factorX, float factorY, float factorZ) |
void | SetScaleX (float factor) |
void | SetScaleY (float factor) |
void | SetScaleZ (float factor) |
const glm::vec3 & | GetPosition () const |
const glm::vec3 & | GetScale () const |
const glm::vec3 & | GetWorldScale () const |
const glm::vec3 & | GetWorldSurfaceScale () const |
const glm::vec3 & | GetRotation () const |
const glm::quat & | GetOrientation () const |
const glm::vec3 & | GetAnchorPoint () const |
const glm::vec3 & | GetSize () const |
const glm::vec3 & | GetInitialSize () const |
void | SetMeasuredSize (const glm::vec3 &measuredSize) |
const glm::vec3 & | GetMeasuredSize () const |
void | SetInternalCustomTimelineValue (uint32_t trackID, const CYIVariant &value) |
virtual void | SetCustomTimelineValue (uint32_t trackID, const CYIVariant &value) |
void | SetClippingOn () |
void | SetClippingOff () |
bool | GetClipping () const |
void | SetClippingBox (const CYIAABB &worldBox) |
const CYIAABB & | GetClippingBox () const |
void | StartPropertyAnimation (PropertyAnimation::Type propType, float from, float to, uint32_t durMs, CYITimeInterpolator *pTimeInterpolator=nullptr, bool dirtyLayout=true) |
void | StopPropertyAnimation (PropertyAnimation::Type propType) |
void | UpdateLocalSpaceCollision (CYIActionEvent *pActionEvent) |
virtual bool | BroadcastEvent (const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent) |
void | UpdateEventForLocalSpace (CYIActionEvent *pActionEvent, glm::vec3 &rayOrigin, glm::vec3 &rayNonOriginPoint) const |
bool | IsBoundingBoxHit (const CYIRay &worldSpaceRay) const |
bool | IsMeshHit (const CYIRay &worldSpaceRay) const |
void | DumpTree () const |
void | StartCaptureKeyboardEvents () |
void | StopCaptureKeyboardEvents () |
void | StartCaptureTrackpadEvents () |
void | StopCaptureTrackpadEvents () |
void | StartCapturePointerEvents (uint8_t pointerID) |
void | StopCapturePointerEvents (uint8_t pointerID) |
bool | DrawBehindChildren (CYISceneNode *pSceneNode, bool *pChanged=nullptr) |
bool | DrawInFrontOfChildren (CYISceneNode *pSceneNode, bool *pChanged=nullptr) |
bool | DrawBehind (CYISceneNode *pSceneNode, bool *pChanged=nullptr) |
bool | DrawInFront (CYISceneNode *pSceneNode, bool *pChanged=nullptr) |
bool | IsFocusRoot () const |
void | SetIsFocusRoot (bool isFocusRoot) |
virtual void | OnFocusGainedInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus) |
virtual void | FocusGainedInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus) |
virtual void | OnFocusLostInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus) |
virtual void | FocusLostInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus) |
virtual void | OnFocusChangedInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus) |
virtual void | FocusChangedInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus) |
virtual bool | ContainsFocusableDescendant (const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) const |
void | SetUseLocalTransformAndAlpha (bool use) |
virtual CYIOptional< CYIStringView > | GetProperty (CYIStringView propertyName) const override |
bool | GetProperty (CYIStringView propertyName, CYIString *pValue) const |
virtual std::map< CYIString, CYIString > | GetProperties () const override |
virtual void | ForEachProperty (const std::function< void(const CYIString &, const CYIString &)> &action) const override |
virtual bool | HasProperties () const override |
void | SetProperty (const CYIString &propertyName, const CYIString &propertyValue) |
std::shared_ptr< CYISceneNodeProxy > | GetSceneNodeProxy () const |
void | SetLayoutConfig (std::unique_ptr< CYILayoutConfig > pLayoutConfig) |
const CYILayoutConfig * | GetLayoutConfig (LayoutConfigFetchMode fetchMode=LayoutConfigFetchMode::LazyInstantiate) const |
CYILayoutConfig * | GetLayoutConfig (LayoutConfigFetchMode fetchMode=LayoutConfigFetchMode::LazyInstantiate) |
void | SetLayoutState (std::unique_ptr< CYILayoutState > pLayoutState) |
const CYILayoutState * | GetLayoutState () const |
CYILayoutState * | GetLayoutState () |
void | RequestLayout () |
LayoutDirtyFlag | GetLayoutDirtyFlag () const |
virtual void | SetLayoutDirtyFlag (LayoutDirtyFlag flag) |
virtual CYIAbstractCameraSceneNode * | FindActiveCamera (const CYISceneNode *pTargetSceneNode=nullptr) const |
CYIAccessibilityAttributes::Accessible | GetAccessible () const |
void | SetAccessible (CYIAccessibilityAttributes::Accessible accessible) |
const CYIAccessibilityAttributes * | GetAccessibilityAttributes () const |
std::unique_ptr< CYIAccessibilityAttributes > | TakeAccessibilityAttributes () |
void | SetAccessibilityAttributes (std::unique_ptr< CYIAccessibilityAttributes > pAttributes) |
const CYIRenderable * | GetRenderable () const |
template<typename T > | |
bool | CanCastTo () const |
CYIAdjustmentLayerSceneNode * | GetLastAdjustmentLayer () const |
![]() | |
CYIEventTarget () | |
virtual | ~CYIEventTarget () |
bool | AddEventListener (CYIEvent::Type eventType, CYIEventHandler *pListener, CYIEventTarget::Phase phase=CYIEventTarget::Phase::Bubble) |
bool | RemoveEventListener (CYIEvent::Type eventType, CYIEventHandler *pListener, CYIEventTarget::Phase phase=CYIEventTarget::Phase::Bubble) |
void | SetSpecialTypeFlag (SpecialEventTargetType type) |
void | ClearSpecialTypeFlag (SpecialEventTargetType type) |
SpecialEventTargetType | GetSpecialTypes () const |
const std::shared_ptr< CYIEventTargetProxy > & | GetProxy () const |
![]() | |
CYISignalHandler () | |
CYISignalHandler (const CYISignalHandler &signalHandler) | |
virtual | ~CYISignalHandler () |
CYISignalHandler & | operator= (const CYISignalHandler &signalHandler) |
void | MoveToThread (CYIThread *pThread) |
This function allows the user to override the default thread affinity to any CYIThread that may or may not be running. More... | |
CYIThreadHandle | GetThreadAffinity () const |
void | SetThreadAffinity (const CYIThreadHandle &threadAffinity) |
virtual bool | IsConnected () const |
virtual bool | IsConnected (const CYISignalBase &signal) const |
void | Disconnect (CYISignalBase &signal) |
void | DisconnectFromAllSignals () |
![]() | |
Listener () | |
virtual | ~Listener () |
virtual void | OnThreadStarted (CYIThread *) |
virtual void | OnThreadTerminated (CYIThread *) |
virtual void | OnThreadFinished (CYIThread *) |
![]() | |
virtual | ~IYIPropertiesSource ()=default |
bool | GetProperty (CYIStringView propertyName, CYIString *pValue) const |
Static Protected Member Functions | |
static bool | HasAllCaps (const YI_TEXT_DEF &textDef) |
static void | UpdateTextForAllCaps (const YI_TEXT_DEF &textDef, CYIString &text) |
Friends | |
class | CYITextSceneNodePriv |
Additional Inherited Members | |
![]() | |
static void | RegisterAllSceneNodes () |
![]() | |
CYISignal< CYISceneNode *, PropertyAnimation::Type > | PropertyAnimationComplete |
CYISignal< CYISceneNode *, CYISceneNode *> | DescendantGainedFocus |
Emitted when focus has entered this tree. The first signal parameter is the new node with focus, and the second signal parameter is the previous node with focus. More... | |
CYISignal< CYISceneNode *, CYISceneNode *> | DescendantLostFocus |
Emitted when focus has left this tree. The first signal parameter is the new node with focus, and the second signal parameter is the previous node with focus. More... | |
CYISignal< CYISceneNode *, CYISceneNode *> | DescendantsChangedFocus |
Emitted when focus has changed within this tree. This signal is called only if focus was previously within this tree and focus is now on a different node (but still within this tree). The first signal parameter is the new node with focus, and the second signal parameter is the previous node with focus. More... | |
CYISignal< CYIAccessibilityAttributes::Accessible > | AccessibleStateChanged |
Emitted when accessible state changed. More... | |
![]() | |
static const float | OPACITY_NOT_VISIBLE_EPSILON |
static constexpr DirtyFlag | DirtyClean = 0x0000 |
static constexpr DirtyFlag | DirtySceneGraph = 0x0001 |
static constexpr DirtyFlag | DirtyVisibility = 0x0002 |
static constexpr DirtyFlag | DirtyOpacity = 0x0004 |
static constexpr DirtyFlag | DirtyLocalTransform = 0x0008 |
static constexpr DirtyFlag | DirtyWorldTransform = 0x0010 |
static constexpr DirtyFlag | DirtyUniform = 0x0020 |
static constexpr DirtyFlag | DirtyWorldBoundingBox = 0x0040 |
static constexpr DirtyFlag | DirtyMesh = 0x0080 |
static constexpr DirtyFlag | DirtyWorldSurfaceScale = 0x0100 |
static constexpr DirtyFlag | DirtyWorldScale = 0x0200 |
static constexpr DirtyFlag | DirtyLocalBoundingBox = 0x0400 |
static constexpr DirtyFlag | DirtyEverything = (DirtySceneGraph | DirtyVisibility | DirtyOpacity | DirtyLocalTransform | DirtyWorldTransform | DirtyUniform | DirtyWorldBoundingBox | DirtyWorldSurfaceScale | DirtyWorldScale | DirtyLocalBoundingBox) |
|
strong |
CYITextSceneNode::CYITextSceneNode | ( | ) |
|
virtual |
|
overridevirtual |
Applies the measured sizes of this node's children.
Reimplemented from CYISceneNode.
|
virtual |
Calculates a rectangle around the text. The rectangle is calculated using the glyph box of the individual characters. The height of that glyph box remains constant even if the specific characters renderered change, thus the height of the returned will remain constant so long as the number of lines in the rendered text does not increase. The rectangle is in local coordinate space.
Reimplemented in CYISDFAtlasTextSceneNode.
|
protectedvirtual |
Returns a tight fitting rectangle that describes the total size of the rendered glyphs including text with multiple lines. The boxRect is used to compute the glyph box size. The returned rectangle is in local space.
Reimplemented in CYISDFAtlasTextSceneNode.
|
protected |
Returns a tight fitting rectangle that describes the total size of the rendered glyphs including text with multiple lines. The pLayout and layoutRect is used to compute the glyph box size. The returned rectangle is in local space.
YI_FLOAT_RECT CYITextSceneNode::CalculateTightTextRect | ( | ) |
Calculates a tight rectangle around the text. The resulting rectangle is in local coordinate space.
|
protected |
Creates and returns a render information object describing this text scene node.
|
protected |
Creates and returns a render information object describing this text scene node with a size set to textRect.
float CYITextSceneNode::GetAdjustedFontSizeScale | ( | ) |
Returns the amount of scale applied to the font by the layout if AdjustsFontSizeToFit is set to true, otherwise 1 will be returned.
bool CYITextSceneNode::GetAdjustsFontSizeToFit | ( | ) | const |
int32_t CYITextSceneNode::GetBaselineShift | ( | size_t | codepointIndex = 0 | ) | const |
CYITextLayout::TextDirection CYITextSceneNode::GetBaseTextDirection | ( | ) | const |
Returns the detected text direction.
int32_t CYITextSceneNode::GetBoxHeight | ( | ) | const |
Returns the height of the text box - this can be updated by SetBoxTypeOn. Point text does not have a specified height and would return 0.
int32_t CYITextSceneNode::GetBoxWidth | ( | ) | const |
Returns the width of the text box - this can be updated by SetPointTypeOn() and SetBoxTypeOn().
CYITextLayout::TextDirection CYITextSceneNode::GetCharacterTextDirection | ( | size_t | characterIndex | ) | const |
Returns the text direction of the character at index characterIndex. Returns TextDirection::Undefined if characterIndex is greater-than or equal to the number of characters.
|
overrideprotectedvirtual |
Returns a string containing useful information about this node, displayed by DumpTree
Subclasses can implement this method to specify different or additional information. Appending to the default string is recommended.
Reimplemented from CYISceneNode.
bool CYITextSceneNode::GetEllipses | ( | ) | const |
CYITextEngine::PositionInString CYITextSceneNode::GetIndexOfPosition | ( | float | x, |
float | y, | ||
float | horizontalPixelRatio, | ||
float | verticalPixelRatio | ||
) |
Returns the index of the space between two characters in the text closest to the specified local coordinate position, relative to the top left corner of the node containing the text. The return value is an instance of CYITextEngine::PositionInString, which contains information about the logical position in the string, and where it should be visually represented.
int32_t CYITextSceneNode::GetKerning | ( | size_t | codepointIndex = 0 | ) | const |
int32_t CYITextSceneNode::GetLeading | ( | size_t | codepointIndex = 0 | ) | const |
size_t CYITextSceneNode::GetLength | ( | ) | const |
CYITextEngine::LineStyle CYITextSceneNode::GetLineStyle | ( | size_t | codepointIndex = 0 | ) | const |
const CYIString& CYITextSceneNode::GetMarkedUpText | ( | ) | const |
int32_t CYITextSceneNode::GetMaximumNumberOfLines | ( | ) | const |
float CYITextSceneNode::GetMinimumFontScale | ( | ) | const |
bool CYITextSceneNode::GetMultiline | ( | ) | const |
CYITextEngine::PositionInString CYITextSceneNode::GetOffsetPosition | ( | CYITextEngine::PositionInString | initialPosition, |
int8_t | offset | ||
) |
Given a position within a string initialPosition, which describes the logical position between characters and where it's represented visually, this function returns the position visually offset from that position by a number of characters described by offset. The return value is an instance of CYITextEngine::PositionInString, which contains information about the logical position in the string, and where it should be visually represented.
|
virtual |
Get the rect surrounding characters from startIndex to endIndex for the cached layout of text that has been rendered.
Reimplemented in CYISDFAtlasTextSceneNode.
CYITextEngine::ScriptMode CYITextSceneNode::GetScriptMode | ( | size_t | codepointIndex = 0 | ) | const |
const CYIString& CYITextSceneNode::GetText | ( | ) | const |
float CYITextSceneNode::GetTextHeight | ( | ) |
Returns the height of the rendered text in local space, including all lines in multi-line text.
Convenience method for retrieving just the height of CalculateTightTextRect.
|
protected |
Returns a CYITextLayout object to use for rendering. The layout object will be cached by the text engine.
float CYITextSceneNode::GetTextOffsetX | ( | ) | const |
const YI_TEXT_STYLE_DEF& CYITextSceneNode::GetTextStyle | ( | size_t | codepointIndex | ) | const |
Finds and returns the text style that applies to the code point inde codepointIndex.
const std::vector<YI_TEXT_STYLE_DEF>& CYITextSceneNode::GetTextStyles | ( | ) | const |
Returns the list of currently-assigned per-character text styles. Each entry in the returned vector represents a range for which the specified text style applies.
float CYITextSceneNode::GetTextWidth | ( | ) |
Returns the width of the rendered text in local space, including all lines in multi-line text.
Convenience method for retrieving just the width of CalculateTightTextRect.
int32_t CYITextSceneNode::GetTracking | ( | size_t | codepointIndex = 0 | ) | const |
CYITextEngine::TrimmingMode CYITextSceneNode::GetTrimmingMode | ( | ) | const |
Returns the whitespace trimming behavior.
Justification CYITextSceneNode::GetXJustify | ( | ) | const |
|
staticprotected |
Returns true if any text style definition belonging to the text definition has the all caps style applied.
bool CYITextSceneNode::IsAllCaps | ( | size_t | codepointIndex = 0 | ) | const |
bool CYITextSceneNode::IsBaseRightToLeft | ( | ) | const |
Returns true if the base direction of the text is right-to-left. Returns false otherwise.
bool CYITextSceneNode::IsBoxType | ( | ) | const |
Returns true if the text is a box type.
bool CYITextSceneNode::IsCharacterRightToLeft | ( | size_t | characterIndex | ) | const |
Returns true if the chracter at index characterIndex is in a right-to-left run of characters. Returns false otherwise or if characterIndex is greater than or equal to the number of characters.
bool CYITextSceneNode::IsPointType | ( | ) | const |
Returns true if the text is a point type.
bool CYITextSceneNode::IsTruncated | ( | ) | const |
Returns true if the cached text layout text is truncated. This is independent of whether ellipsis is enabled or not.
bool CYITextSceneNode::IsUsingFontTables | ( | ) | const |
Returns true if the font table usage is enabled.
|
overridevirtual |
Measures this scene node, considering the layout configuration constraints (if available) and the provided measure specifications. The Measure function is used by the layout system to determine the 'desired' size of elements in a container. The result of calls to this function can be accessed through the GetMeasuredSize() function.
Reimplemented from CYISceneNode.
|
protectedpure virtual |
Called when the bounds of the text have changed but before the text has been drawn. The work performed in this function is usually work that needs to be done in advance of rendering, such as creating a text mesh.
Implemented in CYISDFAtlasTextSceneNode, and CYIAtlasTextSceneNode.
void CYITextSceneNode::ResetPerCharacterStyles | ( | ) |
Clears any per-character styles. After calling this function, all of the text set in this object will be rendered with the same style. The style used will be the style currently assigned to the first character.
void CYITextSceneNode::SetAdjustsFontSizeToFit | ( | bool | adjustsFontSizeToFit | ) |
Sets whether the text font should scale down to fit the box width and specified maximum number of lines. The maximum number of lines must be set for the text to scale. By default, the text does not scale.
void CYITextSceneNode::SetAllCaps | ( | bool | enable, |
size_t | firstCodepointIndex = 0 , |
||
size_t | length = std::numeric_limits< size_t >::max() |
||
) |
Specifies if text should be rendered in all caps.
Optionally, a range of characters to which the property applies can be specified using firstcodepointIndex and length. By default, calling this function changes the all caps mode of the whole text.
void CYITextSceneNode::SetBaselineShift | ( | int32_t | baselineShift, |
size_t | firstCodepointIndex = 0 , |
||
size_t | length = std::numeric_limits< size_t >::max() |
||
) |
Sets the baseline shift for the text. The baseline shift specifies how far a character should be moved 'up' away from the baseline. A character with a modified baseline shift will not result in inter-line leading being modified, nor will it result in a larger (or small) glyph box being calculated. Baseline shift is independent of font size, and is specified in composition units. By default, the baseline shift is 0.
Optionally, a range of characters to which the property applies can be specified using firstcodepointIndex and length. By default, calling this function changes the baseline shift of the whole text.
void CYITextSceneNode::SetBoxTypeOn | ( | int32_t | boxWidth, |
int32_t | boxHeight | ||
) |
Sets the type to box type with size given by boxWidth and boxHeight,
If this text is being converted from point text in AE, also provide heightAboveBase and the anchor point of this node will be updated accordingly.
void CYITextSceneNode::SetEllipses | ( | bool | enable | ) |
Enables or disables ellipsis on this text scene node. If enabled and this node's text does not fit in the configured text bounds, the unrenderable text will be replaced by an ellipsis.
By default, the ellipsis uses the style of the last style in the text styles list. To set an ellipsis style indepedently of what the rest of the text is styled with, use the code point index CYITextEngine::s_textEllipsisCodepointIndex when setting text styles.
void CYITextSceneNode::SetEllipsisStyle | ( | const YI_TEXT_STYLE_DEF & | style | ) |
Sets the text style used for ellipsis.
bool CYITextSceneNode::SetFont | ( | const CYIString & | fontFamilyName, |
const CYIString & | fontStyle, | ||
size_t | firstCodepointIndex = 0 , |
||
size_t | length = std::numeric_limits< size_t >::max() |
||
) |
Sets the font for the text.
Optionally, a range of characters to which the property applies can be specified using firstcodepointIndex and length. By default, calling this function changes the font of the whole text.
void CYITextSceneNode::SetFontColor | ( | const CYIColor & | color, |
size_t | firstCodepointIndex = 0 , |
||
size_t | length = std::numeric_limits< size_t >::max() |
||
) |
Sets the font color for the text.
Optionally, a range of characters to which the property applies can be specified using firstcodepointIndex and length. By default, calling this function changes the font color of the whole text.
bool CYITextSceneNode::SetFontFamily | ( | const CYIString & | fontFamilyName, |
size_t | firstCodepointIndex = 0 , |
||
size_t | length = std::numeric_limits< size_t >::max() |
||
) |
Sets the font family for the text. Family refers to the typeface of the font (e.g. Arial, Calibri).
Optionally, a range of characters to which the property applies can be specified using firstcodepointIndex and length. By default, calling this function changes the font of the whole text.
void CYITextSceneNode::SetFontID | ( | ssize_t | fontID, |
size_t | firstCodepointIndex = 0 , |
||
size_t | length = std::numeric_limits< size_t >::max() |
||
) |
Sets the font ID for the text. The font ID is the ID reported for a specific font by the text engine.
Optionally, a range of characters to which the property applies can be specified using firstcodepointIndex and length. By default, calling this function changes the font ID of the whole text.
void CYITextSceneNode::SetFontSize | ( | int32_t | fontSize, |
size_t | firstCodepointIndex = 0 , |
||
size_t | length = std::numeric_limits< size_t >::max() |
||
) |
Sets the font size for the text.
Optionally, a range of characters to which the property applies can be specified using firstcodepointIndex and length. By default, calling this function changes the font size of the whole text.
bool CYITextSceneNode::SetFontStyle | ( | const CYIString & | fontStyleName, |
size_t | firstCodepointIndex = 0 , |
||
size_t | length = std::numeric_limits< size_t >::max() |
||
) |
Sets the font style for the text. Style refers to the font emphasis (e.g. Regular, Italic, Bold)
Optionally, a range of characters to which the property applies can be specified using firstcodepointIndex and length. By default, calling this function changes the font of the whole text.
void CYITextSceneNode::SetKerning | ( | int32_t | baselineShift, |
size_t | firstCodepointIndex = 0 , |
||
size_t | length = std::numeric_limits< size_t >::max() |
||
) |
Sets the kerning for the text. The kerning modifies how much space is in between the current character and the previous character, and is typically used to space to specific characters. Kerning is specified in 1/1000 em, and thus is proportional to font size. Positive values increase the inter-character spacing, and negative values decrease inter-character spacing.
Optionally, a range of characters to which the property applies can be specified using firstcodepointIndex and length. By default, calling this function changes the kerning of the whole text.
void CYITextSceneNode::SetLeading | ( | int32_t | leading, |
size_t | firstCodepointIndex = 0 , |
||
size_t | length = std::numeric_limits< size_t >::max() |
||
) |
Set the leading (line spacing) in composition units for the text. Call with a negative value to use automatic leading. By default, the leading is calculated automatically based on the font size.
Optionally, a range of characters to which the property applies can be specified using firstcodepointIndex and length. By default, calling this function changes the leading of the whole text.
void CYITextSceneNode::SetLineStyle | ( | CYITextEngine::LineStyle | textLineStyle, |
size_t | firstCodepointIndex = 0 , |
||
size_t | length = std::numeric_limits< size_t >::max() |
||
) |
Specifies if text should be rendered with line decoration.
Optionally, a range of characters to which the property applies can be specified using firstcodepointIndex and length. By default, calling this function changes the line decoration mode of the whole text.
void CYITextSceneNode::SetMarkedUpText | ( | const CYIString & | markedUpText, |
CYITextMarkupParser * | pMarkupParser = nullptr , |
||
const CYICustomMarkupTagsProvider * | pExternalTagsProvider = nullptr |
||
) |
Parses the provided marked-up text markedUpText, assigns the parsed text to this node, and assigns parsed text styles to this node.
If pMarkupParser is null, the default You.i Engine text markup parser is used. An 'external tags' provider can optionally be supplied through the pExternalTagsProvider pointer.
void CYITextSceneNode::SetMaximumNumberOfLines | ( | int32_t | numberOfLines | ) |
Sets the maximum number of lines for this node's text. To set an unlimited maximum number of lines/to remove a restriction on the number of lines, set this property to a value <= 0. If the text is box type, the displayed number of lines will not exceed the box height.
void CYITextSceneNode::SetMinimumFontScale | ( | float | minimumFontScale | ) |
Sets the smallest possible scale a font can reach when adjustsFontSizeToFit is true. It's value is between 0.01 and 1. By default, the minimum font scale is 0.01.
void CYITextSceneNode::SetMultiline | ( | bool | enable | ) |
Sets the wrapping behaviour of the text. If enable is true, text will wrap onto a second line if the text is wider than the box width. If false, only one line of text will be rendered. By default, text does not wrap.
void CYITextSceneNode::SetPointTypeOn | ( | int32_t | width = 0 | ) |
Sets the type to point type. if width is specified and greater than 0, this will count as the maximum width of the node.
The box size of this node will be updated to have a width of width and a height of 0.
Multiline is turned off by default for point text.
void CYITextSceneNode::SetScriptMode | ( | CYITextEngine::ScriptMode | scriptMode, |
size_t | firstCodepointIndex = 0 , |
||
size_t | length = std::numeric_limits< size_t >::max() |
||
) |
Sets the script mode for the text. The script mode is used to specify if some text should be rendered as superscript, subscript or a regular text.
Optionally, a range of characters to which the property applies can be specified using firstcodepointIndex and length. By default, calling this function changes the script mode of the whole text.
|
overridevirtual |
Sets the size of this node to size.
Reimplemented from CYISceneNode.
Reimplemented in CYIBitmapTextSceneNode.
void CYITextSceneNode::SetText | ( | const CYIString & | text | ) |
Sets the text. If this node is point type, passing in text which contains a newline will turn multiline mode on. Setting text without a newline will clear multiline mode.
SetMultiline can be called after SetText to override the automatic multiline setting.
Existing text styles will be preserved when new text is set. Use CYITextSceneNode::ResetPerCharacterStyles() to clear existing text styles.
|
protected |
Sets the text node dirty state, dirties the screne graph and invalidates the layout.
void CYITextSceneNode::SetTextLayoutFactory | ( | std::function< std::unique_ptr< CYITextLayout >()> | textLayoutFactory | ) |
Set a text layout factory which allows overriding the concrete CYITextLayout implementation that is used by default. This is done on a per-node basis meaning different CYITextSceneNode instances can use different CYITextLayout implementations.
void CYITextSceneNode::SetTextMaxWidth | ( | float | maxWidth | ) |
Sets the maximum width in local space. This value will override the calculated text width, after box width has been applied. Use this in combination with SetTextOffsetX to show only a specified area of the text node.
void CYITextSceneNode::SetTextOffsetX | ( | float | textOffsetX | ) |
Sets the first position in the stored text string to show in local space. Use this in combination with SetTextMaxWidth to show only a specified area of the text node.
void CYITextSceneNode::SetTextStyle | ( | const YI_TEXT_STYLE_DEF & | style, |
size_t | firstCodepointIndex | ||
) |
Sets the text style at code point index firstCodepointIndex to style.
Some existing text styles may be removed if the provided style completely 'covers' them. Does nothing if the provided style's m_lastCodepointIndex value is smaller or equal to codepointIndex (but a warning will be logged).
void CYITextSceneNode::SetTextStyles | ( | const std::vector< YI_TEXT_STYLE_DEF > & | styles | ) |
Replaces the existing texts styles with those in the provided vector styles.
The last style's codepointIndex will be changed to std::numeric_limits<uint32_t>::max() if it isn't already. The styles are expected to be ordered in increasing value of m_lastCodepointIndex – out of order styles, and those with duplicate m_lastCodepointIndex values, will be ignored (and a warning will be logged). Does nothing if the provided vector is empty (but a warning will be logged).
void CYITextSceneNode::SetTracking | ( | int32_t | baselineShift, |
size_t | firstCodepointIndex = 0 , |
||
size_t | length = std::numeric_limits< size_t >::max() |
||
) |
Sets the tracking for the text. The tracking modifies how much space is in between the current character and the next character, and is typically used on whole words. Tracking is ignored on the last character in a line of text. Tracking is specified in 1/1000 em, and thus is proportional to font size. Positive values increase the inter-character spacing, and negative values decrease inter-character spacing.
Optionally, a range of characters to which the property applies can be specified using firstcodepointIndex and length. By default, calling this function changes the tracking of the whole text.
void CYITextSceneNode::SetTrimmingMode | ( | CYITextEngine::TrimmingMode | trimmingMode | ) |
Sets the whitespace trimming behavior.
void CYITextSceneNode::SetUseFontTables | ( | bool | useFontTables | ) |
Turns the usage of font tables on or off. If font table usage is off, kerning and ligatures will not be available.
void CYITextSceneNode::SetXJustify | ( | Justification | xJustify | ) |
Sets the text alignment. The text can be either left-aligned, right-aligned, or centered. The mode of the text (point text or box text) affects what the text is aligned around: for box text, the text is aligned between the configured box bounds. For point text, the text is aligned around the (0,0) point of the text node. The default justification is left-aligned.
|
protectedvirtual |
Adds implementation-specific data to pInfo.
Reimplemented in CYISDFAtlasTextSceneNode, CYIAtlasTextSceneNode, and CYIBitmapTextSceneNode.
|
overrideprotectedvirtual |
This hook provides subclasses a means to do operations subsequent to update. This hook is called after all children of the current node have been updated, and after all other update hooks have been called.
Reimplemented from CYISceneNode.
|
staticprotected |
Applies the all caps styles, if it has been set, to the supplied text.
|
protectedvirtual |
Updates the text rectangle for the text type. Depending on the text type (point or box), the values for width and height may not be calculated until the mesh is created.
|
overrideprotectedvirtual |
Called by Update() when the world bounding box update process is complete. Subclasses may overload this function to do post-processing.
Reimplemented from CYISceneNode.
|
overrideprotectedvirtual |
Called by Update() when the transform update process is complete and only when the world surface scale has changed. Subclasses may overload this function to do post-processing.
Reimplemented from CYISceneNode.
Reimplemented in CYISDFAtlasTextSceneNode.
|
friend |
|
protected |
Box dimensions in local space. Used for point type text as well
|
protected |
Flag to indicate if the text node type is box
|
protected |
Used when calculating the glyph box
|
protected |
Marked-up text for this node.
|
protected |
Measured size for the text
|
protected |
Original box type size
|
protected |
Flag to indicate that the content has been changed and associated dimensions need to be recalculated
|
protected |
Text definition for this node
|
protected |
|
protected |
Maximum width of the text in local space
|
protected |
Flag indicating the layout needs to be recalculated
|
protected |
Flag indicating that FreeType font tables are being used