![]() |
nCine 2025.06.r503-ff15d8d
A cross-platform 2D game engine
|
A scene node to draw a text label. More...
#include <TextNode.h>
Public Types | |
enum class | Alignment { LEFT , CENTER , RIGHT } |
Horizontal alignment modes for text made of multiple lines. More... | |
![]() | |
enum class | BlendingPreset { DISABLED , ALPHA , PREMULTIPLIED_ALPHA , ADDITIVE , MULTIPLY } |
Presets for blending factors. More... | |
enum class | BlendingFactor { ZERO , ONE , SRC_COLOR , ONE_MINUS_SRC_COLOR , DST_COLOR , ONE_MINUS_DST_COLOR , SRC_ALPHA , ONE_MINUS_SRC_ALPHA , DST_ALPHA , ONE_MINUS_DST_ALPHA , CONSTANT_COLOR , ONE_MINUS_CONSTANT_COLOR , CONSTANT_ALPHA , ONE_MINUS_CONSTANT_ALPHA , SRC_ALPHA_SATURATE } |
OpenGL blending factors. | |
![]() | |
enum class | VisitOrderState { ENABLED , DISABLED , SAME_AS_PARENT } |
![]() | |
enum class | ObjectType { BASE = 0 , TEXTURE , SHADER , SCENENODE , SPRITE , MESH_SPRITE , ANIMATED_SPRITE , PARTICLE , PARTICLE_SYSTEM , FONT , TEXTNODE , AUDIOBUFFER , AUDIOBUFFER_PLAYER , AUDIOSTREAM_PLAYER } |
Object types. | |
Public Member Functions | |
TextNode (unsigned int maxStringLength) | |
TextNode (SceneNode *parent, Font *font) | |
TextNode (SceneNode *parent, Font *font, unsigned int maxStringLength) | |
TextNode (TextNode &&)=default | |
Default move constructor. | |
TextNode & | operator= (TextNode &&)=default |
Default move assignment operator. | |
TextNode | clone () const |
Returns a copy of this object. | |
float | width () const override |
Returns the width of rendered text. | |
float | height () const override |
Returns the height of rendered text. | |
float | absWidth () const override |
Returns the absolute width of rendered text. | |
float | absHeight () const override |
Returns the absolute height of rendered text. | |
const Font * | font () const |
Gets the font object used by the text node. | |
void | setFont (Font *font) |
Sets the font object used by the text node. | |
Font::RenderMode | renderMode () const |
Returns the render mode used to render this text node. | |
void | setRenderMode (Font::RenderMode renderMode) |
Sets the render mode used to render this text node, overriding the font one. | |
bool | withKerning () const |
Returns true if kerning is enabled for this node rendering. | |
void | enableKerning (bool withKerning) |
Sets the kerning flag for this node rendering. | |
Alignment | alignment () const |
Gets the horizontal text alignment of multiple lines. | |
void | setAlignment (Alignment alignment) |
Sets the horizontal text alignment of multiple lines. | |
float | lineHeight () const |
Gets the text node line height. | |
float | absLineHeight () const |
Gets the text node line height multiplied by the absolute vertical scale factor. | |
void | setLineHeight (float lineHeight) |
Sets the text node line height. | |
unsigned int | tabSize () const |
Gets the size of a "tab" character in terms of whitespaces. | |
void | setTabSize (unsigned int tabSize) |
Sets the size of a "tab" character in terms of whitespaces. | |
const nctl::String & | string () const |
Gets the constant string to render. | |
nctl::String & | string () |
Gets the string to render. | |
void | setString (const nctl::String &string) |
Sets the string to render from a string object. | |
void | setString (const char *string) |
Sets the string to render from a C-style string. | |
void | transform () override |
bool | draw (RenderQueue &renderQueue) override |
Updates the draw command and adds it to the queue. | |
![]() | |
DrawableNode (SceneNode *parent, float xx, float yy) | |
Constructor for a drawable node with a parent and a specified relative position. | |
DrawableNode (SceneNode *parent, const Vector2f &position) | |
Constructor for a drawable node with a parent and a specified relative position as a vector. | |
DrawableNode (SceneNode *parent) | |
Constructor for a drawable node with a parent and positioned in the relative origin. | |
DrawableNode () | |
Constructor for a drawable node with no parent and positioned in the origin. | |
DrawableNode (DrawableNode &&) | |
Default move constructor. | |
DrawableNode & | operator= (DrawableNode &&) |
Default move assignment operator. | |
Vector2f | size () const |
Returns the size of the node area. | |
Vector2f | absSize () const |
Returns the absolute size of the node area. | |
Vector2f | anchorPoint () const |
Gets the transformation anchor point. | |
void | setAnchorPoint (float xx, float yy) |
Sets the transformation anchor point. | |
void | setAnchorPoint (const Vector2f &point) |
Sets the transformation anchor point with a Vector2f | |
bool | isBlendingEnabled () const |
Returns true if the node renders with blending enabled. | |
void | setBlendingEnabled (bool blendingEnabled) |
Sets the blending state for node rendering. | |
BlendingFactor | srcBlendingFactor () const |
Returns the source blending factor. | |
BlendingFactor | destBlendingFactor () const |
Returns the destination blending factor. | |
void | setBlendingPreset (BlendingPreset blendingPreset) |
Sets a blending preset for source and destination blending factors. | |
void | setBlendingFactors (BlendingFactor srcBlendingFactor, BlendingFactor destBlendingFactor) |
Sets a specific source and destination blending factors. | |
unsigned long int | lastFrameRendered () const |
Returns the last frame in which any of the viewports have rendered this node (node was not culled) | |
Rectf | aabb () const |
Returns the axis-aligned bounding box of the node area in the last frame. | |
![]() | |
SceneNode (SceneNode *parent, float x, float y) | |
Constructor for a node with a parent and a specified relative position. | |
SceneNode (SceneNode *parent, const Vector2f &position) | |
Constructor for a node with a parent and a specified relative position as a vector. | |
SceneNode (SceneNode *parent) | |
Constructor for a node with a parent and positioned in the relative origin. | |
SceneNode () | |
Constructor for a node with no parent and positioned in the origin. | |
~SceneNode () override | |
The destructor will delete every child node. | |
SceneNode (SceneNode &&other) | |
Move constructor. | |
SceneNode & | operator= (SceneNode &&other) |
Move assignment operator. | |
SceneNode | clone () const |
Returns a copy of this object. | |
const SceneNode * | parent () const |
Returns the parent as a constant node, if there is any. | |
SceneNode * | parent () |
Returns the parent node, if there is any. | |
bool | setParent (SceneNode *parentNode) |
Sets the parent node. | |
const nctl::Array< SceneNode * > & | children () |
Returns the array of child nodes. | |
const nctl::Array< const SceneNode * > & | children () const |
Returns an array of constant child nodes. | |
bool | addChildNode (SceneNode *childNode) |
Adds a node as a child of this one. | |
bool | removeChildNode (SceneNode *childNode) |
Removes a child of this node, without reparenting nephews. | |
bool | removeChildNodeAt (unsigned int index) |
Removes the child at the specified index, without reparenting nephews. | |
bool | removeAllChildrenNodes () |
Removes all children, without reparenting nephews. | |
bool | unlinkChildNode (SceneNode *childNode) |
Removes a child of this node reparenting nephews as children. | |
unsigned int | childOrderIndex () const |
Returns the child order index of this node or zero if it does not have a parent. | |
bool | swapChildrenNodes (unsigned int firstIndex, unsigned int secondIndex) |
Swaps two children at the specified indices. | |
bool | swapNodeForward () |
Brings this node one node forward in the parent's list of children. | |
bool | swapNodeBack () |
Brings this node one node back in the parent's list of children. | |
enum VisitOrderState | visitOrderState () const |
Returns true if the node visit order is used together with the layer. | |
void | setVisitOrderState (enum VisitOrderState visitOrderState) |
Enables the use of the node visit order together with the layer. | |
uint16_t | visitOrderIndex () const |
Returns the visit drawing order of the node. | |
virtual void | update (float frameTime) |
Called once every frame to update the node. | |
virtual void | visit (RenderQueue &renderQueue, unsigned int &visitOrderIndex) |
Draws the node and visits its children. | |
bool | isUpdateEnabled () const |
Returns true if the node is updating. | |
void | setUpdateEnabled (bool updateEnabled) |
Enables or disables node updating. | |
bool | isDrawEnabled () const |
Returns true if the node is drawing. | |
void | setDrawEnabled (bool drawEnabled) |
Enables or disables node drawing. | |
bool | isEnabled () const |
Returns true if the node is both updating and drawing. | |
void | setEnabled (bool isEnabled) |
Enables or disables both node updating and drawing. | |
Vector2f | position () const |
Returns node position relative to its parent. | |
Vector2f | absPosition () const |
Returns absolute node position. | |
void | setPosition (float x, float y) |
Sets the node position through two coordinates. | |
void | setPosition (const Vector2f &position) |
Sets the node position through a vector. | |
void | setPositionX (float x) |
Sets the X coordinate of the node position. | |
void | setPositionY (float y) |
Sets the Y coordinate of the node position. | |
void | move (float x, float y) |
Moves the node based on two offsets. | |
void | move (const Vector2f &position) |
Adds a move vector to the node current position. | |
void | moveX (float x) |
Moves the node by an offset on the X axis. | |
void | moveY (float y) |
Moves the node by an offset on the Y axis. | |
Vector2f | absAnchorPoint () const |
Gets the absolute transformation anchor point in pixels. | |
void | setAbsAnchorPoint (float x, float y) |
Sets the absolute transformation anchor point in pixels. | |
void | setAbsAnchorPoint (const Vector2f &point) |
Sets the absolute transformation anchor point in pixels with a Vector2f | |
const Vector2f & | scale () const |
Gets the node scale factors. | |
const Vector2f & | absScale () const |
Gets the node absolute scale factors. | |
void | setScale (float scaleFactor) |
Scales the node size both horizontally and vertically. | |
void | setScale (float scaleFactorX, float scaleFactorY) |
Scales the node size both horizontally and vertically. | |
void | setScale (const Vector2f &scaleFactor) |
Scales the node size both horizontally and vertically with a Vector2f | |
float | rotation () const |
Gets the node rotation in degrees. | |
float | absRotation () const |
Gets the node absolute rotation in degrees. | |
void | setRotation (float rotation) |
Sets the node rotation in degrees. | |
Color | color () const |
Gets the node color. | |
Color | absColor () const |
Gets the node absolute color. | |
void | setColor (Color color) |
Sets the node color through a Color object. | |
void | setColorF (Colorf color) |
Sets the node color through a Colorf object. | |
void | setColor (unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha) |
Sets the node color through unsigned char components. | |
void | setColorF (float red, float green, float blue, float alpha) |
Sets the node color through float components. | |
unsigned char | alpha () const |
Gets the node alpha. | |
unsigned char | absAlpha () const |
Gets the node absolute alpha. | |
void | setAlpha (unsigned char alpha) |
Sets the node alpha through an unsigned char component. | |
void | setAlphaF (float alpha) |
Sets the node alpha through a float component. | |
uint16_t | layer () const |
Gets the node rendering layer. | |
uint16_t | absLayer () const |
Gets the node absolute rendering layer. | |
void | setLayer (uint16_t layer) |
Sets the node rendering layer. | |
const Matrix4x4f & | worldMatrix () const |
Gets the node world matrix. | |
void | setWorldMatrix (const Matrix4x4f &worldMatrix) |
Sets the node world matrix (only useful when called inside onPostUpdate() ) | |
const Matrix4x4f & | localMatrix () const |
Gets the node local matrix. | |
void | setLocalMatrix (const Matrix4x4f &localMatrix) |
Sets the node local matrix. | |
bool | deleteChildrenOnDestruction () const |
Gets the delete children on destruction flag. | |
void | setDeleteChildrenOnDestruction (bool shouldDeleteChildrenOnDestruction) |
Sets the delete children on destruction flag. | |
unsigned long int | lastFrameUpdated () const |
Returns the last frame in which any of the viewports have updated this node. | |
![]() | |
Object (ObjectType type) | |
Constructs an object with a specified type and adds it to the index. | |
Object (ObjectType type, const char *name) | |
Constructs an object with a specified type and name and adds it to the index. | |
virtual | ~Object () |
Removes an object from the index and then destroys it. | |
Object (Object &&other) | |
Move constructor. | |
Object & | operator= (Object &&other) |
Move assignment operator. | |
unsigned int | id () const |
Returns the object identification number. | |
ObjectType | type () const |
Returns the object type (RTTI) | |
const char * | name () const |
Returns the object name. | |
void | setName (const char *name) |
Sets the object name. | |
Static Public Member Functions | |
static Vector2f | calculateBoundaries (const Font &font, bool withKerning, unsigned int tabSize, const nctl::String &string) |
Calculates the rectangle boundaries needed to render the provided string with the specified font, kerning state, and tab size. | |
static Vector2f | calculateBoundaries (const Font &font, bool withKerning, const nctl::String &string) |
Calculates the rectangle boundaries needed to render the provided string with the specified font and kerning state. | |
static ObjectType | sType () |
![]() | |
static ObjectType | sType () |
![]() | |
static ObjectType | sType () |
Static method to return class type. | |
template<class T > | |
static T * | fromId (unsigned int id) |
Returns a casted pointer to the object with the specified id, if any exists. | |
Static Public Attributes | |
static const unsigned int | DefaultStringLength = 256 |
Default maximum length for a string to be rendered. | |
static const unsigned int | DefaultTabSize = 4 |
Default size of a "tab" character in terms of whitespaces. | |
static const unsigned int | MaxTabSize = 16 |
Maximum size of a "tab" character in terms of whitespaces. | |
![]() | |
static const Vector2f | AnchorCenter |
static const Vector2f | AnchorBottomLeft |
static const Vector2f | AnchorTopLeft |
static const Vector2f | AnchorBottomRight |
static const Vector2f | AnchorTopRight |
![]() | |
static const float | MinRotation = 0.5f |
The minimum amount of rotation to trigger a sine and cosine calculation. | |
![]() | |
static const unsigned int | MaxNameLength = 128 |
Maximum length for an object name. | |
Protected Member Functions | |
TextNode (const TextNode &other) | |
Protected copy constructor used to clone objects. | |
![]() | |
virtual void | updateAabb () |
Calculates updated values for the AABB. | |
void | updateCulling () |
Called by each viewport update method to update a node culling state. | |
DrawableNode (const DrawableNode &other) | |
Protected copy constructor used to clone objects. | |
![]() | |
SceneNode & | operator= (const SceneNode &)=delete |
Deleted assignment operator. | |
SceneNode (const SceneNode &other) | |
Protected copy constructor used to clone objects. | |
void | swapChildPointer (SceneNode *first, SceneNode *second) |
Swaps the child pointer of a parent when moving an object. | |
![]() | |
Object (const Object &other) | |
Protected copy constructor used to clone objects. | |
Additional Inherited Members | |
![]() | |
enum | DirtyBitPositions { TransformationBit = 0 , ColorBit = 1 , SizeBit = 2 , TextureBit = 3 , AabbBit = 4 , TransformationUploadBit = 5 , ColorUploadBit = 6 } |
Bit positions inside the dirty bitset. | |
![]() | |
float | width_ |
Node width in pixel. | |
float | height_ |
Node height in pixel. | |
nctl::UniquePtr< RenderCommand > | renderCommand_ |
The render command class associated with this node. | |
unsigned long int | lastFrameRendered_ |
The last frame any viewports rendered this node. | |
Rectf | aabb_ |
Axis-aligned bounding box of the node area. | |
![]() | |
bool | updateEnabled_ |
bool | drawEnabled_ |
SceneNode * | parent_ |
A pointer to the parent node. | |
nctl::Array< SceneNode * > | children_ |
The array of child nodes. | |
unsigned int | childOrderIndex_ |
The order index of this node among its siblings. | |
bool | withVisitOrder_ |
When enabled the visit order is used to resolve the drawing order of same layer nodes. | |
enum VisitOrderState | visitOrderState_ |
The visit order state of this node. | |
uint16_t | visitOrderIndex_ |
The visit order index of this node. | |
Vector2f | position_ |
The node relative position. | |
Vector2f | anchorPoint_ |
Vector2f | scaleFactor_ |
Horizontal and vertical scale factors for node size. | |
float | rotation_ |
Degrees for clock-wise node rotation in degrees. | |
Color | color_ |
Node color for transparency and translucency. | |
uint16_t | layer_ |
The node rendering layer. | |
Vector2f | absPosition_ |
Absolute position as calculated by the transform() function. | |
Vector2f | absScaleFactor_ |
Absolute horizontal and vertical scale factors as calculated by the transform() function. | |
float | absRotation_ |
Absolute node rotation as calculated by the transform() function. | |
Color | absColor_ |
Absolute node color as calculated by the transform() function. | |
uint16_t | absLayer_ |
Absolute node rendering layer as calculated by the transform() function. | |
Matrix4x4f | worldMatrix_ |
World transformation matrix (calculated from local and parent's world) | |
Matrix4x4f | localMatrix_ |
Local transformation matrix. | |
bool | shouldDeleteChildrenOnDestruction_ |
A flag indicating whether the destructor should also delete all children. | |
nctl::BitSet< uint8_t > | dirtyBits_ |
Bitset that stores the various dirty states bits. | |
unsigned long int | lastFrameUpdated_ |
The last frame any viewport updated this node. | |
![]() | |
ObjectType | type_ |
Object type. | |
A scene node to draw a text label.
|
strong |
Horizontal alignment modes for text made of multiple lines.
|
overridevirtual |
Returns the absolute height of rendered text.
Reimplemented from ncine::DrawableNode.
|
overridevirtual |
Returns the absolute width of rendered text.
Reimplemented from ncine::DrawableNode.
|
overridevirtual |
Updates the draw command and adds it to the queue.
Reimplemented from ncine::DrawableNode.
|
overridevirtual |
Returns the height of rendered text.
Reimplemented from ncine::DrawableNode.
|
overridevirtual |
Reimplemented from ncine::SceneNode.
|
overridevirtual |
Returns the width of rendered text.
Reimplemented from ncine::DrawableNode.
|
static |
Default maximum length for a string to be rendered.
This number affects both the size of the string container and the initial size of the vertex array in host memory.