Rémi Verschelde
c93ce94f4a
Merge pull request #104455 from Ivorforce/ubrk-clone
...
Optimize startup times by using `ubrk_clone` instead of `ubrk_open`.
2025-03-28 14:33:03 +07:00
Thaddeus Crews
a8bab92fc0
Merge pull request #104450 from Ivorforce/font-load-once
...
Optimize startup times by avoiding loading fonts twice.
2025-03-23 19:03:57 +07:00
Lukas Tenbrink
09e7bef0e0
Use `ubrk_clone` instead of `ubrk_open` to create `UBreakIterator` instances.
...
`ubrk_clone` is much faster, because the locale doesn't have to be parsed again.
2025-03-22 00:42:43 +07:00
Lukas Tenbrink
1a2cb12077
Generate an error when trying to load a font with an invalid face, instead of defaulting to the last valid font face.
...
This optimizes `TextServerAdvanced::_ensure_cache_for_size`, improving editor startup times.
2025-03-21 17:12:28 +07:00
Rémi Verschelde
21e1e43b79
Merge pull request #104430 from Ivorforce/add-features-iterate-fast
...
Optimize `TextServerAdvanced::_add_features` by using iteration instead of `.values()` and `.keys()`
2025-03-21 13:04:19 +07:00
Lukas Tenbrink
bfc1ef4ab7
Optimize `TextServerAdvanced::_add_features` by using iteration instead of `.values()` and `.keys()`.
...
Rename `_add_featuers` to `_add_features`.
2025-03-21 11:59:29 +07:00
kobewi
10f6c01b9c
Remove ABS in favor of Math::abs
2025-03-19 13:52:40 +07:00
Thaddeus Crews
90509e6402
Merge pull request #102129 from Ivorforce/optimize-text-server-adv-break-iter
...
Optimize text rendering by caching `UBreakIterator` instances.
2025-03-11 16:53:56 +07:00
Frank Becker
70a8421c30
Apply fix_alpha_edges for both theme icons and font glyphs.
...
Only apply fix_alpha_edges for SVG glyphs.
Allow modulate for svg glyphs.
2025-02-18 13:10:28 +07:00
Pāvels Nadtočajevs
316b50ba8d
[TextServer] Use all available space when string is too short for ellipsis.
2025-02-10 08:24:46 +07:00
Pāvels Nadtočajevs
b50d9742c2
Fix `is_valid_float`, `Variant` parser, `Expression` parser, script highlighter, and `TextServer` not handing capital E in scientific notation.
2025-02-05 18:39:40 +07:00
bruvzg
f2709c7ded
[TextServer] Fix line/word breaks not always updated when applying overrun.
2025-02-04 11:37:05 +07:00
Lukas Tenbrink
6c82cf0737
Optimize text rendering by caching `UBreakIterator` instances.
2025-01-29 14:03:03 +07:00
Pāvels Nadtočajevs
7f4481284e
[TextServer] Fix embedded object keys in substrings.
2025-01-19 10:22:46 +07:00
Pāvels Nadtočajevs
14093fdacf
[TextServer] Fix ICU data incorrectly marked as loaded even if file was not found.
2025-01-17 15:46:04 +07:00
Pāvels Nadtočajevs
43bc44e3b0
[TextServer] Fix text buffer not processing strings added after `shape`.
2025-01-16 08:57:27 +07:00
Rémi Verschelde
c97c7b73e6
msdfgen: Update to 1.12
2025-01-09 22:03:43 +07:00
Aarni Koskela
f134769506
Fix various typos
...
* Add TODO notes for typos that should be fixed for 5.0
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-08 14:47:42 +07:00
Rémi Verschelde
6e9be55ee2
Merge pull request #100104 from bruvzg/ts_data_in_template
...
[Export] Allow using ICU data from export templates instead of editor embedded data.
2025-01-07 10:14:34 +07:00
Pāvels Nadtočajevs
3d60ce9389
[Export] Allow using ICU data from export templates instead of editor embedded data.
2025-01-07 08:15:09 +07:00
bruvzg
cc1db569e1
[TextServer] Improve embedded objects handling performance.
2025-01-07 08:01:29 +07:00
Yufeng Ying
33817b186f
Remove unused header in drivers and modules.
...
Co-authored-by: Thaddeus Crews <repiteo@outlook.com>
2024-12-24 00:40:47 +07:00
Thaddeus Crews
26e7b6bdd6
Merge pull request #99164 from bruvzg/int_files
...
[Export] Write text server data from memory, instead of using temporary file.
2024-12-03 14:40:58 +07:00
Pāvels Nadtočajevs
c5ca56f40b
[Export] Write text server data from memory, instead of using temporary file.
2024-12-02 18:22:55 +07:00
Rémi Verschelde
fa264115ce
Merge pull request #98664 from bruvzg/ts_reset_subpixel_shift
...
[TextServer] Reset subpixel shift on blank glyphs.
2024-12-02 17:20:07 +07:00
rune-scape
d58b2e879f
Get rid of easily removable uses of const_cast
2024-12-01 17:50:13 +07:00
bruvzg
4daa336d92
[TextServer] Only load ellipsis glyph when it's used.
2024-11-05 11:04:48 +07:00
bruvzg
e81a2afbc4
[TextServer] Reset subpixel shift on blank glyphs and import option to enable/disable it.
2024-11-01 10:18:57 +07:00
Rémi Verschelde
24b4607309
Merge pull request #97693 from bruvzg/ts_fb_silent
...
[TextServer] Silently skip invalid system fallback fonts.
2024-10-01 17:33:38 +07:00
bruvzg
d222daa9c8
[TextServer] Silently skip invalid system fallback fonts.
2024-10-01 17:22:16 +07:00
Travis Wrightsman
c4b7d6f5c3
Fix ICU support data loading
...
This fixes an error in loading the ICU support data on platforms that
don't use either the builtin icu4c or the static ICU support data.
2024-09-30 09:03:15 +07:00
Rémi Verschelde
13a90e938f
Merge pull request #70096 from rune-scape/stringname-dict
...
StringName Dictionary keys
2024-09-03 17:38:06 +07:00
rune-scape
154049ce17
StringName Dictionary keys
...
also added 'is_string()' method to Variant
and refactored many String type comparisons to use it instead
2024-08-29 13:39:27 +07:00
rune-scape
4ba7738a1f
TextServerAdvanced: improve performance by removing redundant lookups
...
+ caching editor setting
+ using a faster hash method on the FontForSizeAdvanced cache
+ SafeFlag for ShapedTextDataAdvanced::valid
2024-08-28 13:01:11 +07:00
Rémi Verschelde
f01e052162
Merge pull request #95549 from timothyqiu/split-translation-server
...
Split `TranslationServer` into its own file
2024-08-16 14:36:16 +07:00
Haoyu Qiu
7343dc3a5d
Split TranslationServer into its own file
2024-08-15 15:00:47 +07:00
bruvzg
32bc1c2f33
[Font Import] Detect pixel fonts and disable subpixel positioning.
2024-07-23 20:34:39 +07:00
Eric allen
e03fb3043f
fix: change esthetic -> aesthetic
2024-07-05 16:03:01 +07:00
bruvzg
b5e3238109
[TextServer] Fix get_word_breaks and it uses.
2024-06-21 14:56:57 +07:00
bruvzg
dc8d7ef43e
[TextServer] Save advances rounding remainders to prevent rounding error accumulation.
2024-06-18 09:04:51 +07:00
bruvzg
e651421905
[TextServer, GDExtension] Fix building text servers as GDExtension, expose new/changed low-level methods to GDExtension API.
2024-06-12 19:30:19 +07:00
Rémi Verschelde
25fe3d4b46
Merge pull request #81639 from MJacred/is_letter
...
Add `is_valid_letter()` to `TextServer`
2024-05-03 01:21:34 +07:00
MJacred
717513a62d
Add is_valid_letter() to TextServer
2024-05-02 21:32:20 +07:00
bruvzg
1f8387f8fd
[TextServer] Improve empty glyph handling to allow glyphs smaller than 2px and avoid unnecessary texture updates.
2024-04-07 18:19:45 +07:00
Haoyu Qiu
9bcda8f94c
Prefer family name in fonts' names table
2024-04-06 16:08:59 +07:00
bruvzg
27f6f4147b
[TextServer] Expose ICU title case string conversion to scripting.
2024-04-04 10:56:49 +07:00
bruvzg
f6a532d501
[Font] Apply oversampling to the "embolden" strength.
2024-03-19 08:50:01 +07:00
Rémi Verschelde
48b650c254
Merge pull request #89422 from Repiteo/clang-tidy-NULL
...
clang-tidy: Enforce `modernize-use-nullptr`
2024-03-13 18:41:39 +07:00
Rémi Verschelde
0478998148
Merge pull request #89414 from bruvzg/update_icu_msdfgen
...
Update ICU and msdfgen.
2024-03-13 18:41:35 +07:00
bruvzg
0d02568ff8
Update ICU and msdfgen.
2024-03-13 09:12:50 +07:00
Thaddeus Crews
3b3e2374c9
clang-tidy: Enforce `modernize-use-nullptr`
2024-03-12 10:59:53 +07:00
Rémi Verschelde
061e0c758d
Merge pull request #89395 from bruvzg/rtl_ts_img_range
...
[RTL] Use "visible characters" property for inline object visibility
2024-03-12 14:23:03 +07:00
bruvzg
433de7f1a8
[RTL] Use "visible characters" property for inline object visibility
2024-03-12 11:28:45 +07:00
bruvzg
911fa38d3a
[Font] Add option to disable embedded bitmaps loading.
2024-03-11 16:31:10 +07:00
bruvzg
b58e45ed43
[TextServer] Fix fallback line breaking code adding two breaks for CR-LF.
2024-03-05 09:15:11 +07:00
bruvzg
ad017a20ea
[TextServer] Implement soft hyphen handling.
2024-02-23 12:40:13 +07:00
Rémi Verschelde
4bb3af67e0
Merge pull request #88091 from bruvzg/extra_fallback
...
[TextServer] Add extra fallback step, to lookup for individual characters.
2024-02-15 17:35:40 +07:00
Rémi Verschelde
eac054f1cc
Merge pull request #87971 from bruvzg/font_no_image_dup
...
[TextServer / Font] Do not duplicate images to prevent unnecessary embedding.
2024-02-15 17:35:36 +07:00
bruvzg
062a93fb77
[TextServer] Add extra fallback step, to lookup for individual characters.
2024-02-09 23:47:48 +07:00
bruvzg
04c0e4446f
[TextServer] Fix bitmap font kerning override.
2024-02-08 08:32:45 +07:00
bruvzg
19f1d5afa9
[TextServer / Font] Do not duplicate images to prevent unnecessary embedding.
2024-02-05 10:38:32 +07:00
bruvzg
85df221610
[TextServer / Font] Add support for customizable baseline offset.
2024-01-28 13:26:49 +07:00
Aaron Franke
91b24b2780
Use GODOT_MODULE define in TextServer modules
2024-01-06 01:19:29 +07:00
bruvzg
575e1201cb
[TextServer] Do not draw non-visual characters.
2023-12-12 12:17:10 +07:00
bruvzg
56579f397d
[Text Overrun] Add option to set custom ellipsis character, add support for system font fallback.
2023-12-04 08:21:42 +07:00
Rémi Verschelde
61b62fc047
Merge pull request #81438 from 0xafbf/patch-2
...
Fix subpixel layouts in text rendering
2023-11-10 21:52:48 +07:00
bruvzg
9ad55dc32d
[TextServer] Fix line breaks for dropcap and resizing embedded objects.
2023-10-31 22:39:42 +07:00
bruvzg
0fb5d53feb
[TextServerAdvanced] Keep dynamically loaded ICU data in memory.
2023-10-23 11:21:13 +07:00
bruvzg
9a1e0e4aef
[Bitmap fonts] Add support for scaling.
2023-10-13 12:57:45 +07:00
A Thousand Ships
f18aa00e85
Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-10-08 17:23:33 +07:00
bruvzg
4a167fc740
[TextServer] Store font extra spacing variations without making a full copy of font.
2023-09-28 10:45:09 +07:00
A Thousand Ships
517e9f8aef
[Modules] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-09-26 16:44:52 +07:00
Rémi Verschelde
31a7fd1951
Merge pull request #81406 from bruvzg/ts_dict_chk2
...
[TextServer] Pass Dictionary properties by value and check property values instead of references.
2023-09-08 09:11:23 +07:00
Andrés Botero
ab52f70a03
Fix subpixel layouts in text rendering
2023-09-07 20:36:00 +07:00
bruvzg
1ced1f9c99
[TextServer] Pass Dictionary properties by value and check property values instead of references..
2023-09-07 11:59:51 +07:00
bruvzg
1cb63fc719
[TextServer] Use locale or first span language to select preferred direction for neutral text.
2023-09-06 08:50:08 +07:00
bruvzg
31a8a9b2e1
[TextServer] Remove excessive Dictionary checks.
2023-09-04 09:47:55 +07:00
bruvzg
5453503697
[Text Server] Store extra spacing of individual font variations.
2023-08-24 11:58:12 +07:00
bruvzg
07d859de25
[TextServer] Fix issues with character breaks, add more tests.
2023-08-19 11:49:34 +07:00
Rémi Verschelde
b51ee8b029
Merge pull request #80650 from bruvzg/comp_char_fix
...
[TextServer] Fix system font fallback and caret/selection behavior for composite characters.
2023-08-18 17:24:54 +07:00
bruvzg
5d3fcc5766
[TextServer] Fix system font fallback and caret/selection behavior for composite characters.
2023-08-15 11:42:40 +07:00
David Snopek
d585ca546b
Use `String::resize()` and `CharString` in text_server_adv again
2023-08-14 18:12:05 +07:00
Rémi Verschelde
faaf27f284
Fix various typos with codespell
...
Also includes typo fixes from #79993 , #80068 , #80276 , and #80303 .
Co-authored-by: betalars <contact@betalars.de>
Co-authored-by: spaceyjase <429978+spaceyjase@users.noreply.github.com>
Co-authored-by: Swarkin <102416174+Swarkin@users.noreply.github.com>
Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-08-07 13:09:47 +07:00
Hendrik Brucker
7e21eb7e00
Extract and reorganize texture resource classes
2023-07-14 20:04:21 +07:00
David Snopek
263c909349
Fix text_server_adv compiling as a GDExtension
2023-06-20 10:50:33 +07:00
Rémi Verschelde
25b2f1780a
Style: Harmonize header includes in modules
...
This applies our existing style guide, and adds a new rule to that style
guide for modular components such as platform ports and modules:
Includes from the platform port or module ("local" includes) should be listed
first in their own block using relative paths, before Godot's "core" includes
which use "absolute" (project folder relative) paths, and finally thirdparty
includes.
Includes in `#ifdef`s come after their relevant section, i.e. the overall
structure is:
- Local includes
* Conditional local includes
- Core includes
* Conditional core includes
- Thirdparty includes
* Conditional thirdparty includes
2023-06-15 14:35:45 +07:00
bruvzg
aaddec7cb8
[TextServer] Add support for retrieving OpenType name strings.
2023-05-22 18:08:34 +07:00
Rémi Verschelde
fb3e4e7967
Merge pull request #75975 from bruvzg/bidi_and_log_errors
...
Improve line BiDi handling, prevent crash on recursive log updates.
2023-04-12 13:28:12 +07:00
bruvzg
282e4231c2
Improve line BiDi handling, prevent crash on recursive log updates.
2023-04-12 11:39:05 +07:00
bruvzg
d904516e55
[TextServer] Use dedicated flag for object replacement characters.
2023-04-12 10:08:51 +07:00
bruvzg
d8d88e1530
[TextServer] Improve BiDi error handling.
2023-04-11 10:07:00 +07:00
Yuri Sizov
98d95f3a0e
Merge pull request #74149 from bruvzg/get_char
...
[Font] Implement `get_char_from_glyph_index` function.
2023-03-16 13:07:11 +07:00
Yuri Sizov
b5845f87fc
Merge pull request #74556 from AThousandShips/text_adv_svg_freetype
...
[TextServer] Make sure Freetype is enabled for ot-svg
2023-03-15 15:04:01 +07:00
bruvzg
8d501a2dc3
[TextServer] Add invalid font scaling check, restrict Linux/BSD system fonts lookup to TrueType/CFF only.
2023-03-10 09:36:17 +07:00
Ninni Pipping
3a5d7a4b54
[TextServer] Make sure Freetype is enabled for ot-svg
2023-03-07 16:27:24 +07:00
bruvzg
016b2f3555
[TextServer] Fix justification on punctuation characters.
2023-03-06 12:39:08 +07:00
Rémi Verschelde
a8d2e7f342
Merge pull request #73987 from bruvzg/ft_lock
...
[TextServer] Add mutex for FreeType face creation/deletion operations.
2023-03-03 11:04:07 +07:00
Rémi Verschelde
7e142e04f5
Merge pull request #73669 from bruvzg/icu_static_data
...
[TextServer] Ensure ICU data is initialised only one and cleaned only at exit.
2023-03-02 11:26:02 +07:00
bruvzg
8459aeaab0
[Font] Implement `get_char_from_glyph_index` function.
2023-03-01 09:29:11 +07:00
bruvzg
bbc77b6d29
Fix text server GDExtension build.
2023-02-26 18:38:22 +07:00