Rémi Verschelde
ae81a569b9
Merge pull request #67409 from bruvzg/fix_oversampling_rounding
...
[TextServer] Do not round glyph advances / coordinates if font oversampling or bitmap glyph scaling is used.
2022-10-31 14:21:56 +01:00
kobewi
e48c5daddf
Unify usage of GLOBAL/EDITOR_GET
2022-10-18 19:01:48 +02:00
Rémi Verschelde
3c4b110ae0
Merge pull request #67521 from nikitalita/speed_up_texture_pos
...
Speed up `find_texture_pos_for_glyph()`
2022-10-17 17:31:54 +02:00
bruvzg
68ec84cded
[TextServer] Do not round glyph advances / coordinates if font oversampling or bitmap glyph scaling is used.
2022-10-17 10:57:49 +03:00
nikitalita
21341ddaed
Speed up find_texture_pos_for_glyph()
2022-10-16 22:29:26 -07:00
Haoyu Qiu
6db8e79eed
Fix memory leak when _ensure_cache_for_size()
fails
2022-10-17 12:47:38 +08:00
kobewi
072f6feaba
Make some Image methods static
2022-10-14 14:34:15 +02:00
bruvzg
0103af1ddd
Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4.
2022-10-07 11:32:33 +03:00
Rémi Verschelde
24b36354ff
Merge pull request #66532 from bruvzg/mipmap_change
...
[Text Server] Clear textures after "generate mipmaps" property change.
2022-09-28 17:13:57 +02:00
bruvzg
51978dde5a
[Text Server] Clear textures after "generate mipmaps" property change.
2022-09-28 12:43:34 +03:00
bruvzg
8f5d56e04a
[GDExtension] Use function names with underscore for TextServer extension, add macros to generate wrappers for module functions.
2022-09-28 10:04:11 +03:00
bruvzg
970592274d
[RTL] Fix font variations / OpenType features of theme default font not updated when default font is changed.
2022-09-26 13:04:40 +03:00
bruvzg
8cdb482738
[TextServer] Always prefer main font over fallbacks, regardless of script/language support.
2022-09-25 23:07:30 +03:00
bruvzg
163257d51b
[GDExtension] Implement support for typed arrays.
2022-09-22 23:31:27 +03:00
Rémi Verschelde
a0c85c11c6
Merge pull request #65914 from bruvzg/fix_trim_wo_space
...
Fix line trim/ellipsis when line do not have space or newline at the end.
2022-09-21 18:55:44 +02:00
kobewi
9f2dc68279
Replace File/Directory with FileAccess/DirAccess
2022-09-19 11:03:31 +02:00
Haoyu Qiu
2d0d6e4f63
Fix crash when executing FontFile.get_face_count
2022-09-18 14:38:57 +08:00
bruvzg
19443a7fef
Fix line trim/ellipsis when line do not have space or newline at the end.
2022-09-16 19:46:26 +03:00
Rémi Verschelde
3a62c294c7
Merge pull request #65170 from KoBeWi/your_argument_is_TypedArray
2022-09-02 13:57:02 +02:00
kobewi
7adc8376ed
Change Array arguments to TypedArray
2022-09-01 13:13:19 +02:00
bruvzg
d83b6b1e1c
[TextServer] Fix LCD AA fonts reading wrong glyphs.
2022-09-01 08:10:33 +03:00
bruvzg
fbcb98855d
Fix MSDF fonts color modulation.
2022-08-30 20:28:53 +03:00
Rémi Verschelde
7013c68619
Merge pull request #64422 from bruvzg/make_fonts_unbearably_ugly_2.0
2022-08-26 11:59:07 +02:00
Rémi Verschelde
62c3e72b6f
Merge pull request #63959 from KoBeWi/typo_arrray
...
Replace Array return types with TypedArray (part 1)
2022-08-23 08:52:13 +02:00
bruvzg
bcc3643989
Add font LCD sub-pixel anti-aliasing support.
2022-08-23 08:47:21 +03:00
kobewi
8be27dc59e
Replace Array return types with TypedArray
2022-08-22 22:42:36 +02:00
bruvzg
1c5a50fac6
Fix color modulation of the grayscale glyphs in font with mixed color / grayscale data.
2022-08-22 21:01:22 +03:00
bruvzg
bf1cc6326a
Allow MSDF rendering for system fonts, fix crash on loading damaged / unsupported font files.
2022-08-09 14:21:09 +03:00
bruvzg
4b155b939b
[Text Server] Prevent composite glyphs which incorporate kashida from being used for justification. Update TextServer tests to clean up on fail.
2022-08-05 19:35:38 +03:00
bruvzg
80c9a44492
Fix overrun flag check and HarfBuzz safe to break flag check.
2022-08-04 22:58:28 +03:00
bruvzg
2980c0d60c
HarfBuzz: Update to version 5.1.0, use new FLAG_SAFE_TO_INSERT_TATWEEL flag to improve justification.
2022-08-04 09:10:16 +03:00
bruvzg
4373a0bb86
[TextServer] Add ICU Unicode security and spoofing detection.
2022-08-02 15:37:49 +03:00
bruvzg
5aa48b6ae5
[TextServer] Implement ICU/UAX 31 based is_valid_identifier
function.
2022-08-02 08:30:20 +03:00
bruvzg
b54c5c2683
[TextServer] Ensure that built-in library headers are always included before system header, add HarfBuzz version checks for optional features.
2022-07-31 22:52:59 +03:00
Juan Linietsky
c7255388e1
Remove ThreadWorkPool, replace by WorkerThreadPool
...
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-25 15:39:50 +02:00
bruvzg
cbe3a2dcb7
Use BitField hint for the TextServer enums. Add missing parts for BitField support to the GDextension API.
2022-07-15 08:49:50 +03:00
kobewi
d2900429e8
Add static methods for creating Image and ImageTexture
2022-07-08 13:40:47 +02:00
bruvzg
344ba0ffaf
Refactor Font configuration and import UI, and Font resources.
2022-07-06 14:12:36 +03:00
bruvzg
b5c96df277
Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer.
2022-06-16 16:49:37 +03:00
Rémi Verschelde
632b933a03
Merge pull request #61934 from Geometror/hashfuncs
...
Hash function improvements
2022-06-15 07:34:43 +02:00
Hendrik Brucker
8c61470fa9
Hash function improvements
2022-06-15 00:32:10 +02:00
Rémi Verschelde
136f84fc35
Merge pull request #61772 from bruvzg/ft_ot_collect
2022-06-13 11:13:05 +02:00
bruvzg
b667469bbf
[TextServer] Add missing font mutex lock.
2022-06-13 10:33:36 +03:00
bruvzg
6e4cdad3ac
[TextServer] Adds support for TrueType / OpenType collection files (*.TTC, *.OTC).
2022-06-07 11:35:59 +03:00
bruvzg
b3bbf3db47
[GDExtension] Expose Variant, NodePath and StringName hash functions.
2022-06-06 12:19:56 +03:00
Haoyu Qiu
ffcb2a4702
Fix build error when FreeType is disabled
2022-06-02 22:46:50 +08:00
reduz
45af29da80
Add a new HashSet template
...
* Intended to replace RBSet in most cases.
* Optimized for iteration speed
2022-05-20 22:40:38 +02:00
bruvzg
cfcdfc38e2
[RTL] Add support for shaping in background thread.
2022-05-19 09:34:44 +03:00
Rémi Verschelde
b154f445d5
Merge pull request #60507 from bruvzg/textmesh
...
Implement TextMesh.
2022-05-16 13:52:57 +02:00
reduz
746dddc067
Replace most uses of Map by HashMap
...
* 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-16 10:37:48 +02:00