bruvzg
29199579f7
Add sub-pixel glyph positioning support.
2022-02-12 19:55:52 +02:00
bruvzg
244db37508
Cleanup and move char functions to the `char_utils.h` header.
2022-02-04 11:35:01 +02:00
bruvzg
215bede6ff
[TextServer] Add function to change font, font size, and OpenType features without invalidating line break points, justification points, or recreating shaped text buffer.
2022-02-02 11:20:44 +02:00
bruvzg
e02a097280
[TextServer] Implement locale and context sensitive case conversion functions.
2022-01-17 14:23:36 +02:00
bruvzg
baec983d8a
[TextServer] Improvements for line breaking, "Fill" alignment, overrun, and 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-13 08:53:28 +02:00
Rémi Verschelde
7faf02383c
Merge pull request #55225 from bruvzg/fix_ligature_cursor_and_ot_features
2022-01-10 13:32:54 +01:00
bruvzg
af6758e008
Fix freezes when tab is zero or negative width.
2022-01-10 12:19:29 +02:00
bruvzg
8c973f21ee
Fix glyph index for bitmap fonts.
...
Fix TextEdit glyph position rounding.
2022-01-10 08:00:27 +02:00
bruvzg
c89c515ccf
[TextServer] Improve ligature cursor handling.
...
Fix mid-grapheme hit test.
Fix OpenType features property handling, add default features override option.
Enable mid-grapheme cursor by default.
2022-01-09 19:03:48 +02:00
Rémi Verschelde
fe52458154
Update copyright statements to 2022
...
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
bruvzg
01bac2c469
[Text Server] Fix re-shaping of substrings, improve oversampling scale.
2021-12-15 11:57:22 +02:00
Nathan Franke
49403cbfa0
Replace String comparisons with "", String() to is_empty()
...
Also:
- Adds two stress tests to test_string.h
- Changes to .empty() on std::strings
2021-12-09 04:48:38 -06:00
Nathan Franke
41a20171eb
align to horizontal_alignment, valign to vertical_alignment, related
2021-12-09 01:38:46 -06:00
Lightning_A
e078f970db
Rename `remove()` to `remove_at()` when removing by index
2021-11-23 18:58:57 -07:00
Rémi Verschelde
88c4380737
Modules: Make sure to include modules_enabled.gen.h where needed
2021-11-12 13:42:58 +01:00
Rémi Verschelde
5968653662
Merge pull request #46721 from bruvzg/custom_word_break_punct
2021-11-09 00:13:59 +01:00
Rémi Verschelde
d9a74fd07f
Merge pull request #54372 from bruvzg/text_edit_ui
2021-11-09 00:13:25 +01:00
M. Huri
4052d85d05
Repaired mistyped of 'threshold' on several files.
2021-10-31 22:11:42 +07:00
bruvzg
3f33e1d7d6
Add functions for getting name and font style from dynamic and bitmap fonts.
...
Add font selection toolbar editor plugin.
2021-10-31 12:40:58 +02:00
bruvzg
63f3051154
Implement TextServer `strip_diacritics` function.
2021-10-28 10:12:57 +03:00
bruvzg
ebbc25e89c
Ignore empty Font resources as theme override.
...
Add range hint to font_size properties.
Remove excessive `base_size` Font property.
2021-10-25 14:05:37 +03:00
bruvzg
efb1c03243
[TextServer] Add texture index, offsets array size and Unicode char validation.
2021-10-15 18:36:00 +03:00
bruvzg
8e98e71997
Move static feature set and number system `StringName`s to the singleton.
...
Remove `hb_` prefix from the custom bitmap font functions to avoid potential conflicts with the HarfBuzz.
Cleanup commented debug code.
Update numbering system data to CLDR 39.
2021-10-12 12:47:18 +03:00
bruvzg
daa613333e
[Text Server] Add support for user defined punctuation list, used for word breaking.
2021-10-01 16:45:16 +03:00
bruvzg
0c0b5c84b0
Implement TextServer GDExtension interface, remove TextServer GDNative interface.
2021-10-01 15:13:29 +03:00
Lightning_A
c63b18507d
Use range iterators for `Map`
2021-09-30 15:09:12 -06:00
Hugo Locurcio
ba65730cbf
Rename RID's `getornull()` to `get_or_null()`
2021-09-29 23:58:02 +02:00
bruvzg
11a49c2f29
Fix trim overrun width not being reset.
2021-09-27 21:51:18 +03:00
bruvzg
1fd3d6c15f
Bitmap Font: Remove deprecated vertical kerning callback.
2021-09-22 18:09:50 +03:00
bruvzg
a58a7cdc9f
Improve invalid non-graphic glyph detection.
2021-09-22 14:37:16 +03:00
bruvzg
c931906af7
Add flag to connected grapheme. Apply RTL displacement FX only to the whole connected grapheme. Pass more glyph info to the custom RTL FX.
2021-09-21 13:51:38 +03:00
Rémi Verschelde
453aff4902
TextServer: Fix build with freetype disabled
...
Also remove RTR calls as we don't translate internal error messages.
2021-09-15 10:11:31 +02:00
Rémi Verschelde
60e0f8b626
Merge pull request #52292 from bruvzg/hb_init
...
[TextServer] Fix regression from #51908 , HarfBuzz handle init and MinGW build.
2021-09-14 07:55:02 +02:00
bruvzg
0089adbd30
[TextServer] Fix HarfBuzz handle init order. Fix MinGW build.
2021-09-01 23:18:03 +03:00
Paulb23
eac8b91c25
Optimise TextServerAdvanced static string comparisions
2021-08-28 11:27:23 +01:00
bruvzg
4c3f7d1290
Makes FontData importable resource.
...
Adds multi-channel SDF font texture generation and rendering support.
Adds per-font oversampling support.
Adds FontData import plugins (for dynamic fonts, BMFonts and monospaced image fonts), font texture cache pre-generation and loading.
Adds BMFont binary format and outline support.
2021-08-27 15:43:18 +03:00
Rémi Verschelde
2c88e1c15d
Merge pull request #51178 from Geometror/layout-options-textline-textparagraph
...
Various text layout improvements (TextLine, TextParagraph, Label, TextServer)
2021-08-11 07:51:57 +02:00
Hendrik Brucker
403f4902d0
Various text layout improvements (TextLine, TextParagraph, Label, TextServer)
2021-08-11 00:09:48 +02:00
bruvzg
7c3c5603d0
[Text Server] Improve object (image/table) inline alignment.
2021-08-08 22:35:47 +03:00
Rémi Verschelde
ac3322b0af
Use const references where possible for List range iterators
2021-07-25 12:22:25 +02:00
Aaron Franke
4e6efd1b07
Use C++ iterators for Lists in many situations
2021-07-23 17:38:28 -04:00
Leonardo Christino
8b91828e4f
Separate underscore from grapheme punctuation to enable doubleclick and caret jump over snakecase variables in editor
2021-07-13 10:03:26 -03:00
Hendrik Brucker
56a8d3f30c
Improvements to Label's layout options
...
- Added options to trim the text in case it overruns
- Added more autowrap modes
- Improved line breaking, which ignores trailing spaces
2021-07-04 16:43:55 +02:00
bruvzg
e624e570bc
[CTL] Improve font fallback order selection.
2021-06-10 22:25:32 +03:00
Marcel Admiraal
da5d7db610
Rename File::get_len() get_length()
2021-05-25 11:54:28 +01:00
Pedro J. Estébanez
469fa47e06
Make all file access 64-bit (uint64_t)
...
This changes the types of a big number of variables.
General rules:
- Using `uint64_t` in general. We also considered `int64_t` but eventually
settled on keeping it unsigned, which is also closer to what one would expect
with `size_t`/`off_t`.
- We only keep `int64_t` for `seek_end` (takes a negative offset from the end)
and for the `Variant` bindings, since `Variant::INT` is `int64_t`. This means
we only need to guard against passing negative values in `core_bind.cpp`.
- Using `uint32_t` integers for concepts not needing such a huge range, like
pages, blocks, etc.
In addition:
- Improve usage of integer types in some related places; namely, `DirAccess`,
core binds.
Note:
- On Windows, `_ftelli64` reports invalid values when using 32-bit MinGW with
version < 8.0. This was an upstream bug fixed in 8.0. It breaks support for
big files on 32-bit Windows builds made with that toolchain. We might add a
workaround.
Fixes #44363 .
Fixes godotengine/godot-proposals#400 .
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-05-17 15:06:19 +02:00
Rémi Verschelde
d83761ba80
Style: Apply clang-tidy's `readability-braces-around-statements`
2021-04-05 14:09:59 +02:00
bruvzg
0d3fa2a125
[Complex Text Layouts] Provide access to glyph contour points.
2021-03-31 09:32:14 +03:00
Anshul7sp1
91181c2086
Fixes small typos and grammar correction
2021-03-12 19:05:16 +05:30
Rémi Verschelde
a527c6856b
Merge pull request #46045 from bruvzg/text_server_bmp_create
...
[TextServer] Restores bitmap font dynamic construction functions.
2021-02-24 12:55:36 +01:00
bruvzg
2d66f364d9
Make FreeType optional for export templates.
2021-02-19 15:01:46 +02:00
bruvzg
bee718f1af
[Text Server] Restores bitmap font dynamic construction functions.
2021-02-15 10:46:49 +02:00
bruvzg
f4d095cdd3
[TextServer] Restore character and space extra spacing support.
2021-02-15 10:46:23 +02:00
bruvzg
eeced6d6f2
[CTL] Do not break line on the span (e.g. RTL BBCode tag) edges.
2021-01-25 09:45:29 +02:00
Rémi Verschelde
b5334d14f7
Update copyright statements to 2021
...
Happy new year to the wonderful Godot community!
2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.
We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)
Here's to a great year 2021 for all Godot users 🎆
2021-01-01 20:19:21 +01:00
Marcel Admiraal
5b937d493f
Rename empty() to is_empty()
2020-12-28 10:39:56 +00:00
bruvzg
06ae77a320
Add word breaks on punctuation characters.
2020-12-14 11:36:13 +02:00
bruvzg
c1d261fdb0
[Complex Text Layouts] Add variable fonts support.
2020-12-13 18:43:39 +02:00
bruvzg
644f739660
Static analyzer fixes:
...
Removes unused code in OS.
Fixes return types.
Fixes few typos.
2020-12-09 10:17:53 +02:00
bruvzg
0ef483e9a9
[Complex Text Layouts] Performance optimizations.
2020-12-07 08:53:02 +02:00
bruvzg
384211af4b
[Complex Text Layouts] Fix bitmap font memory leak.
2020-12-06 20:31:00 +02:00
bruvzg
c3cc9d82b4
[Complex Text Layouts] Align glyph offsets and advances to the pixel grid.
2020-12-06 20:31:00 +02:00
bruvzg
a458e90179
[Complex Text Layouts] Adds missing Font::SPACING_* to the Label, LineEdit, TextEdit, TextLine and TextParagraph.
...
Fixes oversized editor control height (default editor spacing is negative) and control size changing when text is set.
2020-12-06 20:30:59 +02:00
bruvzg
200828276e
[Complex Text Layouts] Implement ICU / HarfBuzz based TextServer module.
2020-11-26 13:55:28 +02:00