summaryrefslogtreecommitdiff
path: root/modules/text_server_fb
AgeCommit message (Collapse)Author
2022-08-26Merge pull request #64422 from bruvzg/make_fonts_unbearably_ugly_2.0Rémi Verschelde
2022-08-23Merge pull request #63959 from KoBeWi/typo_arrrayRémi Verschelde
Replace Array return types with TypedArray (part 1)
2022-08-23Add font LCD sub-pixel anti-aliasing support.bruvzg
2022-08-22Replace Array return types with TypedArraykobewi
2022-08-22Fix color modulation of the grayscale glyphs in font with mixed color / ↵bruvzg
grayscale data.
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-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-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-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-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-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-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-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-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-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-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-28Fix TextServer build with `builtin_icu=no`.bruvzg
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-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-04Cleanup and move char functions to the `char_utils.h` header.bruvzg
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-29simplify formatting scripts, add a clang-tidy script, and run clang-tidyNathan Franke
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.
2022-01-10Merge pull request #55225 from bruvzg/fix_ligature_cursor_and_ot_featuresRémi Verschelde
2022-01-10Fix freezes when tab is zero or negative width.bruvzg