Commit Graph

33 Commits

Author SHA1 Message Date
58126e479c Introduce the concept of global theme contexts
This commit adds the default theme context, which replaces
the need to manually check the project and the default theme
all the time; simplifies related code.

It also adds framework for custom theme contexts, to be used
by the editor. Custom contexts can be attached to any node,
and not necessarily a GUI/Window node. Contexts do no break
theme inheritance and only define which global themes a node
uses as a fallback.

Contexts propagate NOTIFICATION_THEME_CHANGED when one of their
global themes changes. This ensures that global themes act just
like themes assigned to individual nodes and can be previewed
live in the editor.
2023-09-06 19:40:43 +02:00
5453503697 [Text Server] Store extra spacing of individual font variations. 2023-08-24 11:58:12 +03:00
de4a3fa151 Unify and streamline connecting to Resource changes 2023-07-17 19:35:57 +02:00
edd23074a2 Convert some Callables to callable_mp() 2023-07-12 15:33:54 +02:00
dcd2b883eb Use NULL instead of COND checks when appropriate
Restricted to scene
2023-06-10 08:56:30 +02:00
9163d8c336 Expose TextServer justification flags to Label, Label3D, TextMesh and RTL. Add flags to control last/single line justification. 2023-05-15 19:23:54 +03:00
a90bbc3544 Merge pull request #72225 from MinusKube/shaped_text_invalidated_bug
Mark dirty flags when shaped texts are invalidated
2023-02-13 09:13:27 +01:00
b4fe514aa3 [Sprite3D/Label3D] Expose alpha antialiasing properties. 2023-01-31 10:46:38 +02:00
d59c221404 Mark dirty flags when shaped texts are invalidated 2023-01-28 03:31:55 +01:00
1c774a6083 Fix unsafe murmur3 hash use for the default material keys, expose alpha hash transparency mode for default materials and Label3D and Sprite3D. 2023-01-24 12:24:53 +02:00
5361ec9f43 Implement BiDi override mode for GDScript source. 2023-01-18 19:22:20 +02: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
ea33001b95 Add safety-checks before some servers free() 2022-12-29 16:23:38 -05:00
0103af1ddd Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
7aad14a4b6 [TextServer] Add support for trimming edge spaces on line break. 2022-09-01 08:11:55 +03:00
6320a0fc18 Add ThemeDB, expose previously static Theme methods 2022-08-26 19:23:05 +03:00
4bcb625dae Merge pull request #63528 from bruvzg/fix_lbl3d_oversampling 2022-08-26 11:44:02 +02:00
8be27dc59e Replace Array return types with TypedArray 2022-08-22 22:42:36 +02:00
1a24c9e14b Make _validate_property a multilevel method 2022-08-22 18:35:11 +03:00
0f95db6786 Hide properties that have no effect in Label3D inspector
- Use the disabled GI mode as Label3D can't contribute to GI in any way.
- Improve Label3D class documentation.
2022-08-15 18:41:32 +02:00
fa019f6e14 Change default material alpha scissor threshold to 0.5
This makes the default behavior consistent between SpriteBase3D,
BaseMaterial3D and imported glTF scene materials.

Alpha scissor threshold property hints now allows for more precise
adjustments as well.
2022-08-01 02:00:16 +02:00
c9966db8a1 Fix Label3D not updated on window resize. 2022-07-27 14:24:18 +03:00
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
344ba0ffaf Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
329923c6ac Use custom key structs, instead of raw hashes for the Label3D and TextMesh, to avoid potential hash collisions. 2022-07-04 09:47:49 +03:00
141c375581 Clean up Hash Functions
Clean up and do fixes to hash functions and newly introduced murmur3 hashes in #61934
* Clean up usage of murmur3
* Fixed usages of binary murmur3 on floats (this is invalid)
* Changed DJB2 to use xor (which seems to be better)
2022-06-20 12:54:19 +02:00
b5c96df277 Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +03:00
4678736a39 Add suffixes to all nodes and resources 2022-06-11 09:41:05 -05:00
f9fbe92e8a [Label3D, 4.x] Monitor default theme font changes, to prevent use of invalid materials. 2022-05-23 18:15:34 +03:00
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
0a0e94d996 Expose Label3D and Sprite*3D material render priority properties. 2022-04-30 15:09:30 +03:00
be2ee9d277 [Label3D] Add offset property. 2022-04-28 21:23:15 +03:00
be611c1c05 Implement Label3D node.
Add "generate_mipmap" font import option.
Add some missing features to the Sprite3D.
Move BiDi override code from Control to TextServer.
Add functions to access TextServer font cache textures.
Add MSDF related flags and shader to the standard material.
Change standard material cache to use HashMap instead of Vector.
2022-04-22 12:08:46 +03:00