summaryrefslogtreecommitdiff
path: root/modules/text_server_adv
AgeCommit message (Collapse)Author
2022-08-09Allow MSDF rendering for system fonts, fix crash on loading damaged / ↵bruvzg
unsupported font files.
2022-08-07Merge pull request #63919 from Faless/scons/4.x_easy_depsRémi Verschelde
2022-08-06Merge pull request #63762 from bruvzg/ft_warnRémi Verschelde
[TextServer] Add a build warning when building with external FreeType without Brotli support.
2022-08-06Merge pull request #63871 from bruvzg/ts_build_optionsRémi Verschelde
Add Text Server related options to the build profiles editor.
2022-08-05[Text Server] Prevent composite glyphs which incorporate kashida from being ↵bruvzg
used for justification. Update TextServer tests to clean up on fail.
2022-08-04Fix overrun flag check and HarfBuzz safe to break flag check.bruvzg
2022-08-04[Scons] Implement module dependency sorting.Fabio Alessandrelli
Modules can now call: env.module_add_dependencies(name: str, deps: list, optional: bool) To add required or optional dependencies during the "can_build" step. Required dependencies will be checked and the module will be not be enabled when they are missing, printing a warning to notify the user.
2022-08-04HarfBuzz: Update to version 5.1.0, use new FLAG_SAFE_TO_INSERT_TATWEEL flag ↵bruvzg
to improve justification.
2022-08-03Add Text Server related options to the build profiles editor.bruvzg
Adds SCons options to disable Brotli and Graphite. Adds option categories to the build profiles editor. Adds options default state to the build profiles editor. Adds Text Server related options to the build profiles editor. Fix misplaced OpenGL/Vulkan SCons options.
2022-08-02[TextServer] Add ICU Unicode security and spoofing detection.bruvzg
2022-08-02[TextServer] Implement ICU/UAX 31 based `is_valid_identifier` function.bruvzg
2022-08-01[TextServer] Add a build warning when building with external FreeType ↵bruvzg
without Brotli support.
2022-07-31[TextServer] Ensure that built-in library headers are always included before ↵bruvzg
system header, add HarfBuzz version checks for optional features.
2022-07-25Remove ThreadWorkPool, replace by WorkerThreadPoolJuan Linietsky
The former needs to be allocated once per usage. The later is shared for all threads, which is more efficient. It can also be better debugged.
2022-07-25Code quality: Fix header guards consistencyRémi Verschelde
Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
2022-07-21Rename OSX to macOS and iPhoneOS to iOS.bruvzg
2022-07-15Use BitField hint for the TextServer enums. Add missing parts for BitField ↵bruvzg
support to the GDextension API.
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