godot_tl icon indicating copy to clipboard operation
godot_tl copied to clipboard

BiDi, shaping and basic text layout for Godot Engine

libgdtl logo

libgdtl

BiDi, shaping and basic text layout for Godot Engine.

Dependencies

  • Godot 3.x (3.1+)
  • C++14 compiler
  • Meson build system (for gdnative module build only)
  • SCons build system

Compiling (as builtin module)

Build options

Name Description Default value
builtin_runtime Use the built-in libraries true
use_graphite2 Enable SIL Graphite 2 complementary shaper true
use_font_wrapper Enable Godot font wrapper for default controls false

If use_font_wrapper is enabled, apply patch_font.diff from the root of this repository to the Godot engine source first. Additionally apply patch_editor_fonts.diff to use libgdtl to render editor fonts and patch_lbl.diff/patch_le.diff to override default Label and LineEdit with TL counterparts.

Building libgdtl module

Clone this repository (without --recursive flag) into Godot's modules subfolder as godot_tl. Rebuild Godot engine as usual.

Compiling (as gdnative module)

Build options

Name Description Default value
godot-cpp-lib-name godot-cpp static library name (without .a or .lib extension) libgodot-cpp
static-lib Build static library false
static-runtime Link libraries statically for better portability false
builtin-runtime Use the built-in libraries false
use-graphite2 Enable SIL Graphite 2 complementary shaper true

Building godot-cpp static library

See Compiling the cpp bindings library

Building libgdtl module

See Compiling GDNative module for Windows, macOS and Linux, Compiling GDNative module for Android and Compiling GDNative module for iOS for build instructions.

Documentation

Documentation

Class reference

Screenshots

libgdtl scripts screenshot

libgdtl debug view screenshot

iOS simulator screenshot

Android screenshot

License

  • The source code of the libgdtl module is released under unlicense. For more information, see http://unlicense.org/ or the accompanying UNLICENSE file.

  • Godot and GodotNativeTools are licensed under MIT license. For more information, see https://github.com/godotengine/godot/blob/master/LICENSE.txt.

  • HarfBuzz is licensed under MIT-like License. For more information, see https://github.com/harfbuzz/harfbuzz/blob/master/COPYING

  • ICU4C is licensed under Unicode, Inc. License. For more information, see http://www.unicode.org/copyright.html#License

  • FreeType is licensed under FreeType License (BSD-like) or GNU General Public License (GPL), version 2. For more information, see https://www.freetype.org/license.html

  • SIL Graphite engine is licensed under GNU Lesser General Public License (LGPL), version 2.1+ or GNU General Public License (GPL), version 2 or Mozilla Public License. For more information, see https://github.com/silnrsi/graphite/blob/master/COPYING

Demo data

Montserrat, Awami Nastaliq, Comic Neue and Noto fonts are published under the SIL Open Font License, Version 1.1

Material Design icons by Google are published under the Apache License Version 2.0

Noto Color Emoji font is cut down to single glyph (U+1F604) using glyphhanger.

Travis Build Status