Commit Graph

151 Commits

Author SHA1 Message Date
3bb5047db3 [TextServer] Use GDVIRTUAL_REQUIRED_CALL for required extensions methods, update extension docs. 2024-03-13 12:57:39 +02:00
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 +01:00
433de7f1a8 [RTL] Use "visible characters" property for inline object visibility 2024-03-12 11:28:45 +02:00
911fa38d3a [Font] Add option to disable embedded bitmaps loading. 2024-03-11 16:31:10 +02:00
b58e45ed43 [TextServer] Fix fallback line breaking code adding two breaks for CR-LF. 2024-03-05 09:15:11 +02:00
3a08c646ee Pre-commit: Update to clang-format 17.0.6 and black 24.2.0 2024-02-28 14:25:35 +01:00
ad017a20ea [TextServer] Implement soft hyphen handling. 2024-02-23 12:40:13 +02:00
a00d810c83 Merge pull request #88344 from bruvzg/fb_ts_nbsp
[Fallback TextServer] Add support for non breaking spaces.
2024-02-15 17:35:51 +01:00
12883925c2 [Fallback TextServer] Add support for non breaking spaces. 2024-02-14 22:55:50 +02:00
19f1d5afa9 [TextServer / Font] Do not duplicate images to prevent unnecessary embedding. 2024-02-05 10:38:32 +02:00
85df221610 [TextServer / Font] Add support for customizable baseline offset. 2024-01-28 13:26:49 +02:00
91b24b2780 Use GODOT_MODULE define in TextServer modules 2024-01-06 01:19:29 -06:00
575e1201cb [TextServer] Do not draw non-visual characters. 2023-12-12 12:17:10 +02:00
56579f397d [Text Overrun] Add option to set custom ellipsis character, add support for system font fallback. 2023-12-04 08:21:42 +02:00
61b62fc047 Merge pull request #81438 from 0xafbf/patch-2
Fix subpixel layouts in text rendering
2023-11-10 21:52:48 +01:00
9a1e0e4aef [Bitmap fonts] Add support for scaling. 2023-10-13 12:57:45 +03:00
f18aa00e85 Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-10-08 17:23:33 +02:00
4a167fc740 [TextServer] Store font extra spacing variations without making a full copy of font. 2023-09-28 10:45:09 +03:00
517e9f8aef [Modules] Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-09-26 16:44:52 +02:00
ab52f70a03 Fix subpixel layouts in text rendering 2023-09-07 20:36:00 -05:00
1ced1f9c99 [TextServer] Pass Dictionary properties by value and check property values instead of references.. 2023-09-07 11:59:51 +03:00
31a8a9b2e1 [TextServer] Remove excessive Dictionary checks. 2023-09-04 09:47:55 +03:00
5453503697 [Text Server] Store extra spacing of individual font variations. 2023-08-24 11:58:12 +03:00
07d859de25 [TextServer] Fix issues with character breaks, add more tests. 2023-08-19 11:49:34 +03:00
5d3fcc5766 [TextServer] Fix system font fallback and caret/selection behavior for composite characters. 2023-08-15 11:42:40 +03:00
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 +02:00
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 +02:00
8e7afec479 Fix various errors when running the unit tests
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-05-09 18:40:56 +02:00
d904516e55 [TextServer] Use dedicated flag for object replacement characters. 2023-04-12 10:08:51 +03:00
98d95f3a0e Merge pull request #74149 from bruvzg/get_char
[Font] Implement `get_char_from_glyph_index` function.
2023-03-16 13:07:11 +01:00
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 +01:00
8d501a2dc3 [TextServer] Add invalid font scaling check, restrict Linux/BSD system fonts lookup to TrueType/CFF only. 2023-03-10 09:36:17 +02:00
3a5d7a4b54 [TextServer] Make sure Freetype is enabled for ot-svg 2023-03-07 16:27:24 +01:00
016b2f3555 [TextServer] Fix justification on punctuation characters. 2023-03-06 12:39:08 +02:00
a8d2e7f342 Merge pull request #73987 from bruvzg/ft_lock
[TextServer] Add mutex for FreeType face creation/deletion operations.
2023-03-03 11:04:07 +01:00
8459aeaab0 [Font] Implement get_char_from_glyph_index function. 2023-03-01 09:29:11 +02:00
bbc77b6d29 Fix text server GDExtension build. 2023-02-26 18:38:22 +02:00
c950a1ab94 [TextServer] Add mutex for FreeType face creation/deletion operations. 2023-02-26 17:55:04 +02:00
65883cc73b Merge pull request #71598 from bruvzg/gdscript_bidi_override
Implement BiDi override mode for GDScript source.
2023-01-19 19:33:18 +01:00
e144e5dda5 Remove duplicate ucaps code from TextServerFallback. 2023-01-19 14:56:17 +02:00
db7d8c2d87 [GDExtension] Expose some low level functions and String operators. 2023-01-19 12:50:49 +02:00
5361ec9f43 Implement BiDi override mode for GDScript source. 2023-01-18 19:22:20 +02:00
6f0e210093 Refactor ProjectSetting overrides
* Overrides no longer happen for set/get.
* They must be checked with a new function: `ProjectSettings::get_setting_with_override()`.
* GLOBAL_DEF/GLOBAL_GET updated to use this

This change solves many problems:
* General confusion about getting the actual or overriden setting.
* Feature tags available after settings are loaded were being ignored, they are now considered.
* Hacks required for the Project Settings editor to work.

Fixes #64100. Fixes #64014. Fixes #61908.
2023-01-13 15:13:56 +01:00
d95794ec8a One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
a28e8f0c8d [TextServer] Make free calls thread safe. 2023-01-02 21:59:05 +02:00
20d9457f9d Scale MSDF font outline with the font size and MSDF source size to match dynamic font behavior. 2022-12-17 22:47:54 +02:00
207e52c161 Fix String::word_wrap() for long words
- Changes `TextServer.string_get_word_breaks()`
  - Returns pairs of boundary start and end offsets
  - Accepts `chars_per_line` to return line breaks
- Removes `String::word_wrap()`

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2022-12-16 13:18:57 +08:00
53c76fa5d1 [RTL/TextServer] Add baseline inline alignment mode for objects and RTL tables. 2022-12-15 23:16:02 +02:00
3395539ed4 [TextServer] Do not clean up font texture cache when setting allow_system_fallback property. 2022-12-10 17:07:42 +02:00
ecec415988 Use system fonts as fallback and improve system font handling.
Add support for font weight and stretch selection when using system fonts.
Add function to get system fallback font from a font name, style, text, and language code.
Implement system font support for Android.
Use system fonts as a last resort fallback.
2022-12-04 18:44:20 +02:00