bruvzg
e81a2afbc4
[TextServer] Reset subpixel shift on blank glyphs and import option to enable/disable it.
2024-11-01 10:18:57 +02:00
Adam Scott
0d350e7108
Set clang-format `RemoveSemicolon` rule to `true`
...
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00
bruvzg
d222daa9c8
[TextServer] Silently skip invalid system fallback fonts.
2024-10-01 17:22:16 +03:00
Thaddeus Crews
9f9ee0c813
SCons: Add unobtrusive type hints in SCons files
2024-09-25 09:34:35 -05:00
Thaddeus Crews
b37fc1014a
Style: Apply new `clang-format` changes
2024-09-20 08:09:48 -05:00
rune-scape
2fc5321d39
TextServerFallback: improve performance by removing redundant lookups
...
+ caching editor setting
+ using a faster hash method on the FontForSizeFallback cache
+ SafeFlag instead of mutex for ShapedTextDataFallback::valid bc its read Very often
2024-08-28 13:10:43 -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 +02:00
Haoyu Qiu
7343dc3a5d
Split TranslationServer into its own file
2024-08-15 15:00:47 +08:00
bruvzg
32bc1c2f33
[Font Import] Detect pixel fonts and disable subpixel positioning.
2024-07-23 20:34:39 +03:00
Eric allen
e03fb3043f
fix: change esthetic -> aesthetic
2024-07-05 16:03:01 -04:00
bruvzg
b5e3238109
[TextServer] Fix get_word_breaks and it uses.
2024-06-21 14:56:57 +03: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 +03:00
Jakub Marcowski
d9f8ef68df
Update pre-commit hooks configuration to use `ruff` instead of `black`
2024-05-21 18:02:29 -05:00
Thaddeus Crews
a9810cffb4
SCons: Fix potential Windows ANSI exception
2024-05-18 13:14:31 -05:00
A Thousand Ships
a0dbdcc3ab
Replace `find` with `contains/has` where applicable
...
* Replaces `find(...) != -1` with `contains` for `String`
* Replaces `find(...) == -1` with `!contains` for `String`
* Replaces `find(...) != -1` with `has` for containers
* Replaces `find(...) == -1` with `!has` for containers
2024-05-08 12:37:42 +02:00
Thaddeus Crews
dec2a121a9
SCons: Fixes for warn/error colorization
2024-04-29 11:56:21 -05:00
Thaddeus Crews
e0e8ce1fc0
SCons: Colorize warnings/errors during generation
2024-04-28 16:24:48 -05: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 +03:00
Haoyu Qiu
9bcda8f94c
Prefer family name in fonts' names table
2024-04-06 16:08:59 +08:00
bruvzg
27f6f4147b
[TextServer] Expose ICU title case string conversion to scripting.
2024-04-04 10:56:49 +03:00
bruvzg
f6a532d501
[Font] Apply oversampling to the "embolden" strength.
2024-03-19 08:50:01 +02:00
Rémi Verschelde
0478998148
Merge pull request #89414 from bruvzg/update_icu_msdfgen
...
Update ICU and msdfgen.
2024-03-13 18:41:35 +01:00
bruvzg
3bb5047db3
[TextServer] Use GDVIRTUAL_REQUIRED_CALL for required extensions methods, update extension docs.
2024-03-13 12:57:39 +02:00
bruvzg
0d02568ff8
Update ICU and msdfgen.
2024-03-13 09:12:50 +02: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 +01:00
bruvzg
433de7f1a8
[RTL] Use "visible characters" property for inline object visibility
2024-03-12 11:28:45 +02:00
bruvzg
911fa38d3a
[Font] Add option to disable embedded bitmaps loading.
2024-03-11 16:31:10 +02:00
Thaddeus Crews
fb299d0fb1
SCons: Ensure `with` statement where applicable
2024-03-10 12:57:57 -05:00
Thaddeus Crews
d9fa40f2df
Enforce `\n` eol for Python writes
...
• Ensure utf-8 encoding if previously unspecified
2024-03-09 14:29:24 -06:00
bruvzg
b58e45ed43
[TextServer] Fix fallback line breaking code adding two breaks for CR-LF.
2024-03-05 09:15:11 +02:00
Thaddeus Crews
0ce9b6fd1d
Add two new COMSTR environment variables
2024-03-01 12:44:03 -06:00
Rémi Verschelde
3a08c646ee
Pre-commit: Update to clang-format 17.0.6 and black 24.2.0
2024-02-28 14:25:35 +01:00
bruvzg
ad017a20ea
[TextServer] Implement soft hyphen handling.
2024-02-23 12:40:13 +02:00
Rémi Verschelde
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
bruvzg
12883925c2
[Fallback TextServer] Add support for non breaking spaces.
2024-02-14 22:55:50 +02:00
bruvzg
19f1d5afa9
[TextServer / Font] Do not duplicate images to prevent unnecessary embedding.
2024-02-05 10:38:32 +02:00
bruvzg
85df221610
[TextServer / Font] Add support for customizable baseline offset.
2024-01-28 13:26:49 +02:00
Rémi Verschelde
079f1c154d
Merge pull request #86269 from aaronfranke/detect-module
...
Allow detecting when building as an engine module
2024-01-09 11:27:24 +01:00
Martin Capitanio
e090b112ef
ThorVG: update from v0.11.6 to v0.12.0
...
https://github.com/thorvg/thorvg/releases/tag/v0.12.0
Godot-related SVG bug fixes:
+ [SwEngine] Fixed a linear filling scaling issue.
thorvg/thorvg#1834
+ [SwEngine] Path data not invalid even though
it doesn't start with MoveTo.
thorvg/thorvg#1848
Fixes #86128 Gradient issue.
2024-01-08 09:59:43 +01:00
Aaron Franke
91b24b2780
Use GODOT_MODULE define in TextServer modules
2024-01-06 01:19:29 -06:00
bruvzg
575e1201cb
[TextServer] Do not draw non-visual characters.
2023-12-12 12:17:10 +02:00
bruvzg
56579f397d
[Text Overrun] Add option to set custom ellipsis character, add support for system font fallback.
2023-12-04 08:21:42 +02:00
Rémi Verschelde
ba713c80df
Fix various typos with codespell
...
Using 2.2.7.dev51+geb4a58fe.
2023-11-11 23:01:24 +01: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 +01:00
Martin Capitanio
0983022e0c
ThorVG: Update to v0.11.1
...
https://github.com/thorvg/thorvg/releases/tag/v0.11.1
Godot related:
+ [SwEngine] Enhanced the quality of the dash line corners.
+ [SVG] Fixed a regression bug related to maskContentUnit,
userSpaceOnUse/objectBoundingBox.
Fixes #82982 icons.
Fixes #83198 svg ← png/jpg.
2023-10-16 13:48:22 +02:00
bruvzg
9a1e0e4aef
[Bitmap fonts] Add support for scaling.
2023-10-13 12:57:45 +03:00
A Thousand Ships
f18aa00e85
Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-10-08 17:23:33 +02:00
Rémi Verschelde
9af1983af2
Merge pull request #82475 from bruvzg/ts_spacing_var
...
[TextServer] Store font extra spacing variations without making a full copy of font.
2023-10-03 17:23:43 +02:00
Martin Capitanio
aab650f2ef
ThorVG: update to v0.11.0 release.
...
See https://github.com/thorvg/thorvg/releases/tag/v0.11.0
+ Infrastructure
Repository folder structure was make it more intuitive and coherent.
"thorvg/src/lib" -> "thorvg/src/common"
(providing essential common functionalities
used internally among the renderer and sub-modules)
"thorvg/src/lib" -> "thorvg/src/renderer"
(for vector drawing features)
+ SVG related
Fix stroke regression https://github.com/thorvg/thorvg/issues/1670
Support stroke dash offset function https://github.com/thorvg/thorvg/issues/1591#issuecomment-1681319321
Support Focal property in Radial Gradient https://github.com/thorvg/thorvg/issues/1558
2023-09-29 19:50:19 +02:00
bruvzg
4a167fc740
[TextServer] Store font extra spacing variations without making a full copy of font.
2023-09-28 10:45:09 +03:00
Rémi Verschelde
81949c2cd2
thorvg: Update to 0.10.7
...
Fixes #81618 .
2023-09-26 22:43:44 +02:00
A Thousand Ships
517e9f8aef
[Modules] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-09-26 16:44:52 +02:00
Andrés Botero
ab52f70a03
Fix subpixel layouts in text rendering
2023-09-07 20:36:00 -05:00
bruvzg
1ced1f9c99
[TextServer] Pass Dictionary properties by value and check property values instead of references..
2023-09-07 11:59:51 +03:00
bruvzg
31a8a9b2e1
[TextServer] Remove excessive Dictionary checks.
2023-09-04 09:47:55 +03:00
bruvzg
29bad2928a
[TS] Fix SVG emoji placement.
2023-08-29 08:46:15 +03:00
bruvzg
5453503697
[Text Server] Store extra spacing of individual font variations.
2023-08-24 11:58:12 +03:00
bruvzg
07d859de25
[TextServer] Fix issues with character breaks, add more tests.
2023-08-19 11:49:34 +03: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 +02:00
Rémi Verschelde
5282974c61
SCons: Fix ThorVG build option in TextServers with #80095
2023-08-17 13:40:19 +02:00
bruvzg
5d3fcc5766
[TextServer] Fix system font fallback and caret/selection behavior for composite characters.
2023-08-15 11:42:40 +03:00
Martin Capitanio
ac9e259d3e
Update ThorVG to v0.10.0
...
- Release Notes: https://github.com/thorvg/thorvg/releases/tag/v0.10.0
- API change ARGB8888_STRAIGHT -> ARGB8888S
- SVG-SCsub: Enable static ThorVG object linking
- SVG-SCsub: avoid building unused ThorVG parts
- update-thorvg.sh: add v0.10.0 and copy only the Godot relevant code
2023-08-09 17:15:59 +02: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 +02:00
Rémi Verschelde
2c9b7fc7a8
libpng: Enable intrinsics on x86/SSE2, ppc64/VSX, and all arm/NEON
2023-08-04 14:57:21 +02:00
Hendrik Brucker
7e21eb7e00
Extract and reorganize texture resource classes
2023-07-14 20:04:21 +02:00
bruvzg
008d3de1e9
FreeType: Update to version 2.13.1
2023-07-10 12:04:02 +03:00
Rémi Verschelde
81064cc239
Doctool: Remove version attribute from XML header
...
We don't use that info for anything, and it generates unnecessary diffs
every time we bump the minor version (and CI failures if we forget to
sync some files from opt-in modules (mono, text_server_fb).
2023-07-06 10:08:21 +02:00
Yuri Sizov
b7c2fd2e9a
Bump version of module docs to 4.2
2023-07-05 22:58:30 +02:00
3dnikita
1247c9e64f
Fix SVG tag closing for OT font glyphs
...
Prevent ThorVG "Failed to create SVG canvas" errors
by self-closing empty SVG tags in OpenType fonts,
so the glyphs are renderred correctly in Controls.
Fixes #78374
2023-06-22 17:50:24 +03: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 +02:00
bruvzg
35b0354577
Fix SVG font rendering after ThorVG update.
2023-06-07 09:02:04 +03:00
VolTer
151a4ba6a5
Overhaul the top sections of the class reference (GUI classes)
2023-05-28 14:24:54 +02:00
Ninni Pipping
71ee65dc57
Enable shadow warnings and fix raised errors
2023-05-11 16:00:59 +02:00
RedworkDE
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
bruvzg
d904516e55
[TextServer] Use dedicated flag for object replacement characters.
2023-04-12 10:08:51 +03:00
bruvzg
19179238fa
[SVG Font] Keep a copy of UTF-8 XML source string during the whole SVG processing.
2023-04-05 09:25:20 +03: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 +01: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 +01: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 +02:00
Ninni Pipping
3a5d7a4b54
[TextServer] Make sure Freetype is enabled for ot-svg
2023-03-07 16:27:24 +01:00
bruvzg
016b2f3555
[TextServer] Fix justification on punctuation characters.
2023-03-06 12:39:08 +02: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 +01:00
bruvzg
8459aeaab0
[Font] Implement `get_char_from_glyph_index` function.
2023-03-01 09:29:11 +02:00
Rémi Verschelde
1c1524a651
Bump version to 4.1-dev
...
Can't stop, won't stop, they said, huh?
2023-03-01 01:44:37 +01:00
bruvzg
bbc77b6d29
Fix text server GDExtension build.
2023-02-26 18:38:22 +02:00
bruvzg
c950a1ab94
[TextServer] Add mutex for FreeType face creation/deletion operations.
2023-02-26 17:55:04 +02:00
Rémi Verschelde
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
bruvzg
e144e5dda5
Remove duplicate ucaps code from TextServerFallback.
2023-01-19 14:56:17 +02:00
bruvzg
db7d8c2d87
[GDExtension] Expose some low level functions and String operators.
2023-01-19 12:50:49 +02:00
bruvzg
5361ec9f43
Implement BiDi override mode for GDScript source.
2023-01-18 19:22:20 +02:00
Juan Linietsky
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
Rémi Verschelde
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
bruvzg
a28e8f0c8d
[TextServer] Make `free` calls thread safe.
2023-01-02 21:59:05 +02:00
bruvzg
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
Haoyu Qiu
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
bruvzg
53c76fa5d1
[RTL/TextServer] Add baseline inline alignment mode for objects and RTL tables.
2022-12-15 23:16:02 +02:00
Rémi Verschelde
f1edd03d4c
Merge pull request #69718 from groud/finally_rename_gdnative_to_gdextension
...
Rename all gdnative occurences to gdextension
2022-12-12 11:43:59 +01:00
Gilles Roudière
be1c9d677d
Rename all gdnative occurences to gdextension
...
Non-exhaustive list of case-sensitive renames:
GDExtension -> GDNative
GDNATIVE -> GDEXTENSION
gdextension -> gdnative
ExtensionExtension ->Extension (for where there was GDNativeExtension)
EXTENSION_EXTENSION ->EXTENSION (for where there was GDNATIVE_EXTENSION)
gdnlib -> gdextension
gdn_interface -> gde_interface
gdni -> gde_interface
2022-12-12 11:04:57 +01:00
bruvzg
3395539ed4
[TextServer] Do not clean up font texture cache when setting `allow_system_fallback` property.
2022-12-10 17:07:42 +02:00
bruvzg
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