Age | Commit message (Collapse) | Author |
|
|
|
This commit makes operator[] on Vector const and adds a write proxy to it. From
now on writes to Vectors need to happen through the .write proxy. So for
instance:
Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;
Failing to use the .write proxy will cause a compilation error.
In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.
_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
|
|
Implemented proceses priority
|
|
|
|
-Replaced some viewport size calls to screen size, since viewport size should be deprecated at this point..
|
|
|
|
Automatic poll from SceneTree is enabled by default.
This allows for polling (and thus RPCs/RSETs) manually in other loops
(e.g. physics, thread, specific step) and for proper mutex protecion
when accessing the multiplayer API from threads (e.g. for sending larger
files in chunks).
|
|
Only the class name retain the MultiplayerAPI name
|
|
API hash fixes
|
|
Now generating mouse events from touch is optional (on by default) and it's performed by `InputDefault` instead of having each OS abstraction doing it. (*)
The translation algorithm waits for a touch index to be pressed and tracks it translating its events to mouse events until it is raised, while ignoring other pointers.
Furthermore, to avoid an stuck "touch mouse", since not all platforms may report touches raised when the window is unfocused, it checks if touches are still down by the time it's focused again and if so it resets the state of the emulated mouse.
*: In the case of Windows, since it already provides touch-to-mouse translation by itself, "echo" mouse events are filtered out to have it working like the rest.
On X11 a little hack has been needed to avoid a case of a spurious mouse motion event that is generated during touch interaction.
Plus: Improve/fix tracking of current mouse position.
** Summary of changes to settings: **
- `display/window/handheld/emulate_touchscreen` becomes `input/pointing_devices/emulate_touch_from_mouse`
- New setting: `input/pointing_devices/emulate_mouse_from_touch`
|
|
|
|
[RFC] MultiplayerAPI refactor
|
|
Font update after resize relies on the viewport size which was updated
after the font was already refreshed, which resulted in artifacts when
it was rendered into the actual/new viewport size.
Fixes #15173.
|
|
Remove networking related logic from Node and SceneTree.
SceneTree now simply relay all networking related stuff to
MultiplayerAPI for compatibility
|
|
Fix to this issue #17202
|
|
Found via `codespell -q 3 --skip="./thirdparty,./editor/translations" -I ../godot-word-whitelist.txt`
Whitelist consists of:
```
ang
doubleclick
lod
nd
que
te
unselect
```
|
|
Notable potentially breaking changes:
- PROPERTY_USAGE_NOEDITOR is now PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK, without PROPERTY_USAGE_INTERNAL
- Some properties were renamed, and sometimes even shadowed by new ones
- New getter methods (some virtual) were added
|
|
|
|
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
|
|
Bind SceneTree::set_quit_on_go_back() to gdscript
|
|
Happy new year to the wonderful Godot community!
|
|
Fix #15189
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Onion skinning
|
|
|
|
wrong function,
leading to unnecesary copy on writes and reduced performance.
|
|
Added a node_added signal to the SceneTree
|
|
|
|
|
|
|
|
Paulb23/line_edit_caret_blink_resetting_issue_10764
Fixed caret blink and speed resetting in scenes, issue 10764
[ci skip]
|
|
Add missing constant binding STRETCH_ASPECT_EXPAND in SceneTree
|
|
Add missing constant binding "STRETCH_ASPECT_EXPAND"
(I cannot test it because godot does not compile anymore on my pc (windows10))
|
|
|
|
The forth in my quest to make Godot 3.x compile with -Werror on GCC7
|
|
|
|
|
|
|
|
|
|
Method to get ID of RPC calling peer
|
|
These Null checks were removed in #10581 but actually changed the
logic of the functions in this case.
This fixes #10654
|
|
Currently we rely on some undefined behavior when Object->cast_to() gets
called with a Null pointer. This used to work fine with GCC < 6 but
newer versions of GCC remove all codepaths in which the this pointer is
Null. However, the non-static cast_to() was supposed to be null safe.
This patch makes cast_to() Null safe and removes the now redundant Null
checks where they existed.
It is explained in this article: https://www.viva64.com/en/b/0226/
|
|
|
|
|
|
|