nodesnim/core/font

Provides TTF text rendering. Use SDL2_ttf.

Types

StyleUnicode = ref object
  is_url*: bool
  style*: cint
  c*, url*: string
  color*: ColorRef
StyleText = ref object
  font*: FontPtr
  rendered*: bool
  spacing*: float
  max_lines*: int
  texture*: GlTextureObj
  chars*: seq[StyleUnicode]

Procs

proc schar(c: string; color: ColorRef = Color(1.0'f32, 1.0'f32, 1.0'f32);
          style: cint = TTF_STYLE_NORMAL; is_url: bool = false): StyleUnicode {...}{.
    raises: [], tags: [].}
proc stext(text: string; color: ColorRef = Color(1.0'f32, 1.0'f32, 1.0'f32);
          style: cint = TTF_STYLE_NORMAL): StyleText {...}{.raises: [], tags: [].}
proc len(text: StyleText): int {...}{.raises: [], tags: [].}
proc `$`(c: StyleUnicode): string {...}{.raises: [], tags: [].}
proc `$`(text: StyleText): string {...}{.raises: [], tags: [].}
proc `&`(text: StyleText; c: StyleUnicode): StyleText {...}{.raises: [], tags: [].}
proc `&`(text, t: StyleText): StyleText {...}{.raises: [], tags: [].}
proc `&`(text: StyleText; t: string): StyleText {...}{.raises: [], tags: [].}
proc `&`(text: string; c: StyleUnicode | StyleText): string
proc `&=`(text: var StyleText; c: StyleUnicode | StyleText)
proc `&=`(text: var string; c: StyleUnicode | StyleText)
proc `&=`(text: var StyleText; t: string) {...}{.raises: [], tags: [].}
proc `[]`(text: StyleText; index: int | BackwardsIndex): StyleUnicode
proc `[]`[T, U](text: StyleText; slice: HSlice[T, U]): StyleText
proc applyStyle(symbol: StyleUnicode; style: cint; enabled: bool = true) {...}{.raises: [],
    tags: [].}
proc toUpper(text: StyleText): StyleText {...}{.raises: [], tags: [].}
proc toLower(text: StyleText): StyleText {...}{.raises: [], tags: [].}
proc setColor(c: StyleUnicode; color: ColorRef) {...}{.raises: [], tags: [].}
proc setColor(text: StyleText; color: ColorRef) {...}{.raises: [], tags: [].}
proc setColor(text: StyleText; index: int; color: ColorRef) {...}{.raises: [], tags: [].}
proc setColor(text: StyleText; s, e: int; color: ColorRef) {...}{.raises: [], tags: [].}
proc setNormal(c`gensym17635213: StyleUnicode; val`gensym17635214: bool = true) {...}{.
    raises: [], tags: [].}
proc setNormal(text`gensym17635215: StyleText; val`gensym17635216: bool) {...}{.
    raises: [], tags: [].}
proc setNormal(text`gensym17635218: StyleText; index`gensym17635219: int;
              val`gensym17635220: bool) {...}{.raises: [], tags: [].}
proc setNormal(text`gensym17635221: StyleText;
              s`gensym17635222, e`gensym17635223: int; val`gensym17635224: bool) {...}{.
    raises: [], tags: [].}
proc setBold(c`gensym17640093: StyleUnicode; val`gensym17640094: bool = true) {...}{.
    raises: [], tags: [].}
proc setBold(text`gensym17640095: StyleText; val`gensym17640096: bool) {...}{.raises: [],
    tags: [].}
proc setBold(text`gensym17640098: StyleText; index`gensym17640099: int;
            val`gensym17640100: bool) {...}{.raises: [], tags: [].}
proc setBold(text`gensym17640101: StyleText;
            s`gensym17640102, e`gensym17640103: int; val`gensym17640104: bool) {...}{.
    raises: [], tags: [].}
proc setItalic(c`gensym17645093: StyleUnicode; val`gensym17645094: bool = true) {...}{.
    raises: [], tags: [].}
proc setItalic(text`gensym17645095: StyleText; val`gensym17645096: bool) {...}{.
    raises: [], tags: [].}
proc setItalic(text`gensym17645098: StyleText; index`gensym17645099: int;
              val`gensym17645100: bool) {...}{.raises: [], tags: [].}
proc setItalic(text`gensym17645101: StyleText;
              s`gensym17645102, e`gensym17645103: int; val`gensym17645104: bool) {...}{.
    raises: [], tags: [].}
proc setUnderline(c`gensym17650093: StyleUnicode; val`gensym17650094: bool = true) {...}{.
    raises: [], tags: [].}
proc setUnderline(text`gensym17650095: StyleText; val`gensym17650096: bool) {...}{.
    raises: [], tags: [].}
proc setUnderline(text`gensym17650098: StyleText; index`gensym17650099: int;
                 val`gensym17650100: bool) {...}{.raises: [], tags: [].}
proc setUnderline(text`gensym17650101: StyleText;
                 s`gensym17650102, e`gensym17650103: int; val`gensym17650104: bool) {...}{.
    raises: [], tags: [].}
proc setStrikethrough(c`gensym17655093: StyleUnicode;
                     val`gensym17655094: bool = true) {...}{.raises: [], tags: [].}
proc setStrikethrough(text`gensym17655095: StyleText; val`gensym17655096: bool) {...}{.
    raises: [], tags: [].}
proc setStrikethrough(text`gensym17655098: StyleText; index`gensym17655099: int;
                     val`gensym17655100: bool) {...}{.raises: [], tags: [].}
proc setStrikethrough(text`gensym17655101: StyleText;
                     s`gensym17655102, e`gensym17655103: int;
                     val`gensym17655104: bool) {...}{.raises: [], tags: [].}
proc setURL(text: StyleText; s, e: int; url: string; color: ColorRef = URL_COLOR) {...}{.
    raises: [], tags: [].}
proc setFont(text: StyleText; font: cstring; size: cint) {...}{.raises: [], tags: [].}
proc setFont(text: StyleText; font: FontPtr) {...}{.raises: [], tags: [].}
proc loadFont(font: cstring; size: cint): FontPtr {...}{.raises: [], tags: [].}
proc splitLines(text: StyleText): seq[StyleText] {...}{.raises: [], tags: [].}
proc split(text: StyleText; splitval: string): seq[StyleText] {...}{.raises: [], tags: [].}
proc getTextSize(text: StyleText): Vector2Obj {...}{.raises: [], tags: [].}
proc getCaretPos(text: StyleText; pos: uint32): tuple[a: Vector2Obj, b: uint16] {...}{.
    raises: [], tags: [].}
proc getPosUnderPoint(text: StyleText; global_pos, text_pos: Vector2Obj;
                     text_align: AnchorObj = Anchor(0, 0, 0, 0)): uint32 {...}{.raises: [],
    tags: [].}
Returns caret position under mouse.
proc getCharUnderPoint(text: StyleText; global_pos, text_pos: Vector2Obj;
                      text_align: AnchorObj = Anchor(0, 0, 0, 0)): tuple[
    c: StyleUnicode, pos: uint32] {...}{.raises: [], tags: [].}
proc renderSurface(text: StyleText; align: AnchorObj): SurfacePtr {...}{.
    raises: [ResourceError], tags: [].}
Renders the surface and returns it, if available.
Arguments:
  • align -- text align.
proc render(text: StyleText; size: Vector2Obj; align: AnchorObj) {...}{.
    raises: [ResourceError, GLerror], tags: [].}
Translates SDL2 surface to OpenGL texture and frees surface memory.
proc renderTo(text: StyleText; pos, size: Vector2Obj; align: AnchorObj) {...}{.
    raises: [ResourceError, GLerror], tags: [].}