summaryrefslogtreecommitdiff
path: root/modules/text_server_adv
AgeCommit message (Collapse)Author
2022-07-08Add static methods for creating Image and ImageTexturekobewi
2022-07-06Refactor Font configuration and import UI, and Font resources.bruvzg
2022-07-04HarfBuzz: Update to version 4.4.1bruvzg
2022-06-16Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the ↵bruvzg
TextServer.
2022-06-15Merge pull request #61934 from Geometror/hashfuncsRémi Verschelde
Hash function improvements
2022-06-15Hash function improvementsHendrik Brucker
2022-06-13Merge pull request #61772 from bruvzg/ft_ot_collectRémi Verschelde
2022-06-13[TextServer] Add missing font mutex lock.bruvzg
2022-06-07[TextServer] Adds support for TrueType / OpenType collection files (*.TTC, ↵bruvzg
*.OTC).
2022-06-06[GDExtension] Expose Variant, NodePath and StringName hash functions.bruvzg
2022-06-02Fix build error when FreeType is disabledHaoyu Qiu
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-19[RTL] Add support for shaping in background thread.bruvzg
2022-05-17Update HarfBuzz, ICU and FreeType.bruvzg
HarfBuzz: Update to version 4.2.1 FreeType: Update to version 2.12.1 ICU: Update to version 71.1
2022-05-16Merge pull request #60507 from bruvzg/textmeshRémi Verschelde
Implement TextMesh.
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-05-13Implement TextMesh resource.bruvzg
Apply simulated slant and embolden to the TextServer `gont_get_glyph_contours` results.
2022-05-12Use new HashMap implementation in the TextServer, and Font.bruvzg
2022-05-12Add a new HashMap implementationreduz
Adds a new, cleaned up, HashMap implementation. * Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing). * Keeps elements in a double linked list for simpler, ordered, iteration. * Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much for performance vs keeping the key, but helps replace old code). * Uses a more modern C++ iterator API, deprecates the old one. * Supports custom allocator (in case there is a wish to use a paged one). This class aims to unify all the associative template usage and replace it by this one: * Map<> (whereas key order does not matter, which is 99% of cases) * HashMap<> * OrderedHashMap<> * OAHashMap<>
2022-05-10[TextServer] Fix incorrect oversampled font scaling.bruvzg
2022-05-04Merge pull request #60723 from reduz/refactor-module-initializationRémi Verschelde
2022-05-04Refactor module initializationreduz
* Changed to use the same stages as extensions. * Makes the initialization more coherent, helping solve problems due to lack of stages. * Makes it easier to port between module and extension. * removed the DRIVER initialization level (no longer needed).
2022-05-03Merge pull request #60627 from aaronfranke/rename-elementsRémi Verschelde
Rename Transform2D and Basis `elements` to `columns` and `rows` respectively
2022-05-02Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`Rémi Verschelde
Didn't commit all the changes where it wants to initialize a struct with `{}`. Should be reviewed in a separate PR. Option `IgnoreArrays` enabled for now to be conservative, can be disabled to see if it proposes more useful changes. Also fixed manually a handful of other missing initializations / moved some from constructors.
2022-04-29Rename Transform2D "elements" to "columns"Aaron Franke
2022-04-28Implement text-to-speech support on Android, iOS, HTML5, Linux, macOS and ↵bruvzg
Windows. Implement TextServer word break method.
2022-04-22Implement Label3D node.bruvzg
Add "generate_mipmap" font import option. Add some missing features to the Sprite3D. Move BiDi override code from Control to TextServer. Add functions to access TextServer font cache textures. Add MSDF related flags and shader to the standard material. Change standard material cache to use HashMap instead of Vector.
2022-04-11Make FileAccess and DirAccess classes reference counted.bruvzg
2022-04-06Fix some issues found by cppcheck.bruvzg
2022-04-05Delay font texture update, until `draw` is called. Rasterize glyphs during ↵bruvzg
shaping.
2022-04-04Style: Apply clang-tidy to current code, add `readability-redundant-member-init`Rémi Verschelde
2022-03-31[ICU] Add library name suffix for API rename to avoid conflicts (GDExtension ↵bruvzg
build).
2022-03-29[ICU] Add library name suffix for API rename to avoid conflicts.bruvzg
2022-03-28Fix TextServer build with `builtin_icu=no`.bruvzg
2022-03-22[Help] Add simulated slanted font support to the editor help.bruvzg
2022-03-18Merge pull request #59277 from bruvzg/hb401Rémi Verschelde
2022-03-18HarfBuzz: Update to version 4.0.1bruvzg
2022-03-17Unify TextServer built-in module and GDExtension code.bruvzg
2022-03-13Improve simulated bold fonts advance.bruvzg
2022-03-11Add options to embolden and transform font outlines to simulate bold and ↵bruvzg
italic typefaces.
2022-03-02HarfBuzz: Update to version 4.0.0bruvzg
2022-02-15Merge pull request #57877 from bruvzg/subpixel_gl_posRémi Verschelde
2022-02-15Add an XML schema for documentationHugo Locurcio
This makes it easier to spot syntax errors when editing the class reference. The schema is referenced locally so validation can still work offline. Each class XML's schema conformance is also checked on GitHub Actions.
2022-02-12Add sub-pixel glyph positioning support.bruvzg
2022-02-10Fix typos with codespellRémi Verschelde
Using codespell 2.2-dev from current git. Added `misc/scripts/codespell.sh` to make it easier to run it once in a while and update the skip and ignore lists.
2022-02-04Cleanup and move char functions to the `char_utils.h` header.bruvzg
2022-02-02HarfBuzz: Update to version 3.3.1bruvzg
2022-02-02[TextServer] Add function to change font, font size, and OpenType features ↵bruvzg
without invalidating line break points, justification points, or recreating shaped text buffer.
2022-01-17[TextServer] Implement locale and context sensitive case conversion functions.bruvzg
2022-01-13[TextServer] Improvements for line breaking, "Fill" alignment, overrun, and ↵bruvzg
interaction between these modes. Fix "Fill" alignment processing wrong side of the text if overrun trim was applied. Improve "Fill" alignment to avoid adding excessive subsequent spaces or elongations. Add font detection to the overrun, to correctly add ellipsis (was using last glyph font, which doesn't necessary have dot character). Improve line breaking to avoid adding excessive subsequent soft break points for languages without word separator. Port missing overrun/justification code to the Fallback text server. Fix inferred text direction detection by controls. Add tests for "Fill" alignment and line breaking glyph flags.