This class manages rendering text to the screen.
Public Member Functions | |
TextRenderingProperty (RenderableData data) | |
Creates a new text rendering property. Note that this must not be called directly More... | |
void | Setup (ComputedStyle style) |
Applies this TRP to the given computed style. Only ever used by the "content" CSS property. More... | |
int | LetterCount () |
Gets how many letters are being rendered. More... | |
void | FontLoaded (DynamicFont font) |
Called when an -face font fully loads. More... | |
void | ClearDimensions () |
Clears the computed dimensions so they'll get recalculated during the layout pass. More... | |
void | ClearText () |
override void | Paint (LayoutBox box, Renderman renderer) |
Called when a paint event occurs. Paint events don't relocate the whole UI so are quick and efficient. More... | |
int | LetterIndex (float widthOffset) |
Gets the letter at the given local position in pixels. More... | |
float | PositionOf (int letterID) |
Gets the horizontal position in pixels of the numbered letter. More... | |
float | LocalPositionOf (int letterID) |
Gets the horizontal position in pixels of the numbered letter relative to this element. More... | |
virtual void | DrawUnderline (Renderman renderer) |
Draws an underline (or a strikethrough). More... | |
void | DrawEmoji (Glyph character, ref float left, Renderman renderer) |
Draws the given Emoji character. More... | |
Public Member Functions inherited from Css.DisplayableProperty | |
DisplayableProperty (RenderableData data) | |
Creates a new displayable property for the given render data. More... | |
MeshBlock | GetFirstBlock (Renderman renderer) |
Gets the first rendered block of this property. Used during Paint passes. More... | |
void | SetVisibility (bool visible) |
Call this when the visibility of this property as a whole changes. More... | |
virtual void | OnBatchDestroy () |
Called when the isolation batch for this property gets removed. More... | |
void | Change (string property, Value newValue) |
Called when a named css property changes. More... | |
void | ClearBlocks () |
Clears all mesh blocks that this property has allocated. More... | |
void | WentOffScreen () |
virtual bool | Render (bool first, LayoutBox box, Renderman renderer) |
Make this property visible by forcing it to redraw. More... | |
virtual void | ApplyTransform (Matrix4x4 delta, Renderman renderer) |
Transforms all the verts by the given delta matrix. Used during a Paint only. More... | |
virtual void | RequestPaint () |
Requests for a paint event to occur. Note that paint events are more efficient than a layout as they only refresh the mesh colours and uvs rather than the whole mesh. More... | |
void | SetBatchMaterial (Renderman renderer, Material material) |
Sets the current batches material. More... | |
void | RequestLayout () |
Requests for a layout event to occur. Note that paint events are more efficient than a layout as they only refresh the mesh colours and uvs rather than the whole mesh. More... | |
MeshBlock | Add (Renderman renderer) |
virtual void | PostProcess (LayoutBox box, Renderman renderer) |
Called after a render pass. More... | |
void | Isolate () |
Isolates this property from the rest of the UI such that it can have a custom mesh/shader/texture etc. More... | |
void | Include () |
Reverses Css.DisplayableProperty.Isolate by re-including this property in the main UI batch. More... | |
bool | IsIsolated () |
Checks if this is an isolated property - that's one which is seperate and takes its own drawcall. More... | |
AtlasLocation | RequireImage (AtlasEntity image) |
Public Attributes | |
float | FontSize |
The size of the font in pixels. More... | |
float | FontSizeAdjust =-1f |
The font-size adjustment. -1 is none. More... | |
Color | BaseColour |
The colour that the font should be without the colour overlay. More... | |
float | Alias =float.MaxValue |
Should text be automatically aliased? Auto is MaxValue. Set with font-smoothing. More... | |
bool | AllEmpty |
True if all characters are whitespaces. No batches will be generated. More... | |
float | LetterSpacing |
Additional spacing to apply around letters. More... | |
float | WordSpacing |
Additional spacing to apply around words. More... | |
bool | OverflowWrapActive |
Overflow wrap active. More... | |
TextDecorationInfo | TextLine |
How and where a line should be drawn if at all (e.g. underline, overline etc.) More... | |
Glyph[] | Characters |
The set of characters to render. Note that the characters are shared globally. More... | |
float | LineHeightOffset |
The line height offset. More... | |
Public Attributes inherited from Css.DisplayableProperty | |
bool | Visible |
True if this is currently visible on screen. More... | |
bool | Isolated |
True if this property is isolated and has a seperate mesh and material from everything else. More... | |
short | BlockCount |
The number of mesh blocks that this property has allocated. More... | |
RenderableData | RenderData |
The parent render data that this is a property of. More... | |
bool | GotBatchAlready |
Only applies to Isolated properties. Set to true when this property has allocated a UIBatch on the current layout. More... | |
Protected Member Functions | |
virtual void | DrawInvertCharacter (ref float left, Renderman renderer) |
Draws a character with x-inverted UV's. Used for rendering e.g. "1 < 2" in right-to-left. More... | |
virtual void | DrawCharacter (ref float left, Renderman renderer) |
Draws a character and advances the pen onwards. More... | |
Protected Member Functions inherited from Css.DisplayableProperty | |
virtual void | OnChange (string property, Value newValue) |
Called when a named css property changes. More... | |
Package Functions | |
override void | NowOffScreen () |
Called when this element goes off screen (or is removed from the DOM). More... | |
override bool | NowOnScreen () |
Called when this element goes on screen. More... | |
void | LoadCharacters (string text, RenderableData renderable) |
Loads the character array (Css.TextRenderingProperty.Characters) from the given text string. More... | |
override void | Layout (LayoutBox box, Renderman renderer) |
Called when a layout event occurs. Layout events relocate the whole UI so should be used less frequently than a paint event. More... | |
Package Attributes | |
FontFace | FontToDraw |
The font face to use when rendering. More... | |
float[] | Kerning |
Kern values for this text, if it has any. Created only if it's needed. More... | |
bool | Dirty =true |
True if this needs to have its characters loaded. More... | |
Package Attributes inherited from Css.DisplayableProperty | |
UIBatch | Batch |
The batch that this was allocated to. More... | |
int | FirstBlockIndex |
The block index in the first buffer. With this, all blocks belonging to this property can be quickly discovered. More... | |
Properties | |
override int | DrawOrder [get] |
This property's draw order. More... | |
bool | NoEndingSpace [get] |
Does this word not end with a whitespace? More... | |
int | EndSpaceSize [get] |
The width in pixels of the last whitespace of this element, if it's got one. More... | |
Properties inherited from Css.DisplayableProperty | |
virtual int | DrawOrder [get] |
This property's draw order. More... | |
virtual bool | IsBackground [get] |
True if this paints across the whole background of the element. More... | |
bool | Paintable [get] |
Checks if this property can be repainted. More... | |
Private Member Functions | |
void | SetValue (CssProperty property, ComputedStyle style) |
Sets the named css property from the given style if the property exists in the style. More... | |
Static Private Attributes | |
static Glyph | NEWLINE_GLYPH |
The glyph for the newline character. More... | |
|
inline |
Creates a new text rendering property. Note that this must not be called directly
data | The renderable object that this is rendering text for. |
|
inline |
Clears the computed dimensions so they'll get recalculated during the layout pass.
|
inline |
|
inlineprotectedvirtual |
Draws a character and advances the pen onwards.
Reimplemented in Css.TextRenderingProperty3D.
|
inline |
Draws the given Emoji character.
|
inlineprotectedvirtual |
Draws a character with x-inverted UV's. Used for rendering e.g. "1 < 2" in right-to-left.
Reimplemented in Css.TextRenderingProperty3D.
|
inlinevirtual |
Draws an underline (or a strikethrough).
Reimplemented in Css.TextRenderingProperty3D.
|
inline |
Called when an -face font fully loads.
|
inlinepackagevirtual |
Called when a layout event occurs. Layout events relocate the whole UI so should be used less frequently than a paint event.
Reimplemented from Css.DisplayableProperty.
Reimplemented in Css.TextRenderingProperty3D.
|
inline |
Gets how many letters are being rendered.
|
inline |
Gets the letter at the given local position in pixels.
widthOffset | The position in pixels from the left of this element. |
|
inlinepackage |
Loads the character array (Css.TextRenderingProperty.Characters) from the given text string.
|
inline |
Gets the horizontal position in pixels of the numbered letter relative to this element.
letterID | The letter to get. |
|
inlinepackagevirtual |
Called when this element goes off screen (or is removed from the DOM).
Reimplemented from Css.DisplayableProperty.
Reimplemented in Css.TextRenderingProperty3D.
|
inlinepackagevirtual |
Called when this element goes on screen.
Reimplemented from Css.DisplayableProperty.
Called when a paint event occurs. Paint events don't relocate the whole UI so are quick and efficient.
Reimplemented from Css.DisplayableProperty.
Reimplemented in Css.TextRenderingProperty3D.
|
inline |
Gets the horizontal position in pixels of the numbered letter.
letterID | The letter to get. |
|
inline |
Applies this TRP to the given computed style. Only ever used by the "content" CSS property.
|
inlineprivate |
Sets the named css property from the given style if the property exists in the style.
property | The css property, e.g. color. |
style | The style to load value of the property from. This should be the computed style for the parent element. |
float Css.TextRenderingProperty.Alias =float.MaxValue |
Should text be automatically aliased? Auto is MaxValue. Set with font-smoothing.
bool Css.TextRenderingProperty.AllEmpty |
True if all characters are whitespaces. No batches will be generated.
Color Css.TextRenderingProperty.BaseColour |
The colour that the font should be without the colour overlay.
Glyph [] Css.TextRenderingProperty.Characters |
The set of characters to render. Note that the characters are shared globally.
|
package |
True if this needs to have its characters loaded.
float Css.TextRenderingProperty.FontSize |
The size of the font in pixels.
float Css.TextRenderingProperty.FontSizeAdjust =-1f |
The font-size adjustment. -1 is none.
|
package |
The font face to use when rendering.
|
package |
Kern values for this text, if it has any. Created only if it's needed.
float Css.TextRenderingProperty.LetterSpacing |
Additional spacing to apply around letters.
float Css.TextRenderingProperty.LineHeightOffset |
The line height offset.
|
staticprivate |
The glyph for the newline character.
bool Css.TextRenderingProperty.OverflowWrapActive |
Overflow wrap active.
TextDecorationInfo Css.TextRenderingProperty.TextLine |
How and where a line should be drawn if at all (e.g. underline, overline etc.)
float Css.TextRenderingProperty.WordSpacing |
Additional spacing to apply around words.
|
get |
This property's draw order.
|
get |
The width in pixels of the last whitespace of this element, if it's got one.
|
get |
Does this word not end with a whitespace?