Commit Graph

88 Commits

Author SHA1 Message Date
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
Hugo Locurcio 11842eb738
Disable code font ligatures by default in the editor 2022-11-12 22:38:04 +01:00
bruvzg 060d62e0dc
Load and use system emoji font in the editor. 2022-11-01 11:04:58 +02:00
kobewi e48c5daddf Unify usage of GLOBAL/EDITOR_GET 2022-10-18 19:01:48 +02:00
Rémi Verschelde 3a5eac7ca3 Merge pull request #62860 from Calinou/editor-log-bold-italic-mono-fonts
Define bold, italics and mono fonts in editor log for `print_rich()`
2022-10-04 10:30:22 +02:00
bruvzg e94ac75d3d
Do not use horizontal hinting for the editor monospace font. 2022-09-14 11:05:09 +03:00
bruvzg bcc3643989
Add font LCD sub-pixel anti-aliasing support. 2022-08-23 08:47:21 +03:00
bruvzg 8823eae328
Rename OSX to macOS and iPhoneOS to iOS. 2022-07-21 09:37:52 +03:00
Hugo Locurcio 3e7bcc4755
Define bold, italics and mono fonts in editor log for `print_rich()`
This is also used by the number indicator for message grouping,
as it uses a bold font.

Mono font does not actually turn proportional fonts into monospace.
Instead, it's a more faint version of the regular font, intended
to emulate the look of the "faint" ANSI escape code (and make `[code]`
distinguishable from regular text).

The custom code font will be used to generate the bold/italic/mono
variants if specified in the Editor Settings.
2022-07-09 19:18:02 +02:00
bruvzg a319e6e623
Fix regressions from Font refactor
Fixes `p_font.is_null()` errors due to incorrect resource type used.
Fixes code editor font not set correctly, and OpenType features applied to the wrong font.
2022-07-07 15:11:08 +03:00
bruvzg 344ba0ffaf
Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
Hendrik Brucker 6d876baf60 Improve the VisualShader/VisualScript editor UI 2022-04-30 03:56:57 +02:00
bruvzg 9381acb6a4
Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
bruvzg 803e1ae920
[Help] Add simulated slanted font support to the editor help. 2022-03-22 16:16:04 +02:00
bruvzg 4f1660dad7
Generate simulated bold font from the custom font if no custom bold font set. 2022-03-14 08:03:25 +02:00
bruvzg e3f7510978
Add simulated bold variant to the editor CJK fonts. 2022-03-13 17:42:20 +02:00
Rémi Verschelde 768f9422bc Convert uses of `DirAccess *` to `DirAccessRef` to prevent memleaks
`DirAccess *` needs to be deleted manually, and this is often forgotten
especially when doing early returns with `ERR_FAIL_COND`.
`DirAccessRef` is deleted automatically when it goes out of scope.

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2022-03-11 09:13:11 +01:00
bruvzg 29199579f7
Add sub-pixel glyph positioning support. 2022-02-12 19:55:52 +02:00
Hendrik Brucker b396fd4eef Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
Rémi Verschelde fc076ece3d
Revert "Add missing SNAME macro optimization to all theme methods call"
This reverts commit a988fad9a0.

As discussed in #57725 and clarified in #57788, `SNAME` is not meant to be used
everywhere but only in critical code paths. For theme methods specifically, it
was by design that only getters use `SNAME` and not setters.
2022-02-08 10:17:25 +01:00
jmb462 a988fad9a0 Add missing SNAME macro optimization to all theme methods call 2022-02-06 23:06:11 +01:00
bruvzg 3940bf586b
[Editor] Disable contextual alternates (coding ligatures) outside of code editor. 2022-01-23 11:09:10 +02:00
Rémi Verschelde 04d283dc23
Merge pull request #36198 from Calinou/code-font-jetbrains-mono 2022-01-20 21:43:17 +01:00
Rémi Verschelde a2a4ec7cb5
Merge pull request #56376 from pycbouh/theme-tombe-les-theme-properties 2022-01-06 11:33:43 +01:00
Hugo Locurcio b5f88b1efc
Use JetBrains Mono as the editor's default code font
This recently released font has been gaining popularity thanks to
its readability and aesthetics. It also features font ligatures
(enabled by default, but can be disabled in the Editor Settings).

Its character set isn't as extensive as Hack's, but it should be
sufficient for most uses.

More information at <https://www.jetbrains.com/lp/mono/>.

This also reorders the third-party font notices to be in
alphabetical order.
2022-01-05 01:35:50 +01: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
Yuri Sizov fe283fd07a Correctly use fallback Theme values as last resort 2021-12-31 18:53:43 +03: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
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 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
bruvzg e5b956dc2d [Editor Fonts] Add Noto Sans Bold font variant for supported languages. 2021-07-19 23:08:05 +03:00
kobewi f4b361dd15 Add header theme type variations to labels 2021-07-13 15:42:09 +02:00
Lightning_A e28fd07b2b Rename `instance()`->`instantiate()` when it's a verb 2021-06-19 20:49:18 -06:00
Rémi Verschelde 9e328bb5b7
Core: Move DirAccess and FileAccess to `core/io`
File handling APIs are typically considered part of I/O, and we did have most
`FileAccess` implementations in `core/io` already.
2021-06-11 14:52:39 +02:00
reduz d95bc3fa67 Use bold fonts in editor
* Labels are now bold
* Categories in trees are bold
* Main editor buttons are bold
* Fixed section folding arrows in inspector
2021-06-02 12:47:57 -03: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
bruvzg c1d261fdb0
[Complex Text Layouts] Add variable fonts support. 2020-12-13 18:43:39 +02:00
bruvzg 99666de00f
[Complex Text Layouts] Refactor Font class, default themes and controls to use Text Server interface.
Implement interface mirroring.
Add TextLine and TextParagraph classes.
Handle UTF-16 input on macOS and Windows.
2020-11-26 14:25:48 +02:00
Juan Linietsky 110e650dc8 Change how default fonts are created, fixes #39235
Also fixes file dialog icons.
2020-07-03 21:29:12 -03:00
Yuri Sizov 1ea7295bd2 Improve shortcut formatting in docs 2020-04-10 18:42:11 +03:00
bruvzg 21c2116744
Fix default editor font.
Fix popup_centered_clamped definition typo.
2020-03-27 14:13:01 +02:00
jfons 7055a926ff Add rotation widget to 3D viewport 2020-03-08 23:38:29 +01:00
Rémi Verschelde a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
volzhs aa5e34d018 Fix validating editor bold font 2019-10-21 22:44:03 +09:00
Hanif Bin Ariffin 79e83b7c92 Fixed warnings text using custom font and color setting.
Fixes #31917
Added missing font and color override.
2019-10-04 07:20:18 -04:00
Hugo Locurcio c940d29973
Add an "Auto" editor font hinting setting to match OS font rendering
The "Auto" setting picks the font hinting setting that best matches
the operating system's font rendering settings.
This font hinting setting is now the default.
2019-08-14 15:57:07 +02:00
Hugo Locurcio 6c374f91dd
Simplify editor settings related to font hinting and antialiasing
A single setting is now used to control the font hinting/antialiasing
settings of both main and code fonts. This means there are 2 settings
in total (instead of 4).

Font settings were also reordered for clarity.
2019-07-28 01:10:51 +02:00
Hugo Locurcio a100471f6b
Add support for bold fonts in the editor help
This also makes it possible to use the strikethrough tag (`[s]`)
in the editor help.
2019-06-15 18:47:42 +02:00
Rémi Verschelde c56ef88c5a Fix help source font setting and related cleanup
This was a regression from #28107 due to a typo in the `initial_set`
call.

I used the opportunity to harmonize the font settings by ensuring we
only get values in `editor_fonts.cpp` and set them all with proper and
consistent hint ranges in `editor_settings.cpp`.

Fixes #29774.
2019-06-14 14:25:20 +02:00
Rémi Verschelde 58f66fa848
Merge pull request #28107 from Amssat221/issue28105
Set range (10-50) to help source font size
2019-05-28 11:53:52 +02:00