Age | Commit message (Collapse) | Author |
|
* Friendlier with version control.
* Generates pseudo unique IDs, to minimize conflicts when merging, but still
user readable (so, not UUID).
* Eventually will also allow to have more precisely named sub-resources in
imported files.
* This will allow better reloading on changes (including resources already
loaded) as well as better keeping track of changes on the DCC.
* Keeps backward compatibility with the old formats.
* Binary and text format version incremented to mark breakage in forward
compatibility.
|
|
Optimize NodePath update when renaming or deleting nodes in the editor
|
|
|
|
The `Math_INF` and `Math_NAN` defines were just aliases for those
constants, so we might as well use them directly.
Some portions of the code were already using `INFINITY` directly.
|
|
* References (which include hash tables) can be profiled with --debug-stringnames
|
|
Editor StringName and Viewport optimizations
|
|
* Added explicit return type to the SNAME macro.
* Add some extra SNAME usages.
* Change some ClassDB methods to use const StringName & arguments.
* Cache the Window parent in Control because it's used in
is_layout_rtl(), which is called often.
* Only enable internal processing for viewports that need it.
* Change CanvasItem::group to be a StringName because it's only used as
that.
|
|
[Net] New `@rpc` annotation, "sync" is no longer part of mode.
|
|
Synced with gabomdq/SDL_GameControllerDB@241fed0a4425d1b7679e3d3d7abdd2a2cd7fa57c.
|
|
- Move the "sync" property for RPCs to RPCConfig.
- Unify GDScript annotations into a single one:
- `@rpc(master)` # default
- `@rpc(puppet)`
- `@rpc(any)` # former `@remote`
- Implement three additional `@rpc` options:
- The second parameter is the "sync" option (which also calls the
function locally when RPCing). One of "sync", "nosync".
- The third parameter is the transfer mode (reliable, unreliable,
ordered).
- The third parameter is the channel (unused for now).
|
|
Fix missing locale names
|
|
Increase the number of arguments accepted by UndoRedo methods
|
|
* Added a new macro SNAME() that constructs and caches a local stringname.
* Subsequent usages use the cached version.
* Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time.
* Replaced all theme usages by this new macro.
* Replace all signal emission usages by this new macro.
* Replace all call_deferred usages by this new macro.
This is part of ongoing work to optimize GUI and the editor.
|
|
Sony PlayStation DualShock 4 (054c:05c4 first gen).
Unofficial Switch controller.
|
|
MultiplayerAPI is_network_server Fails Silently
|
|
Add shape_idx to CollisionObject2D mouse_entered signal
|
|
|
|
* Required by binding generators
* Makes it easier to create the bindings on construction.
|
|
|
|
Was looking for misuse of module headers without checking that the module is
actually enabled and got carried away...
|
|
Fix 'in' operator to check if an object member exists
|
|
Implement the ability to disable classes
|
|
|
|
* This PR adds the ability to disable classes when building.
* For now it's only possible to do this via command like:
`scons disable_classes=RayCast2D,Area3D`
* Eventually, a proper UI will be implemented to create a build config file to do this at large scale, as well as detect what is used in the project.
|
|
|
|
Fixes #38042.
|
|
|
|
String::format leave passed values untouched
|
|
Fix memfree parameter name
|
|
|
|
|
|
|
|
|
|
Fix unicode invalid skip error in AssetLib
|
|
|
|
|
|
|
|
Redo how instance bindings work
|
|
Now the process uses a Map to lookup node pointers instead of iterating
over all modified node paths in a list and comparing them for each
property to check.
The process also avoids checking properties with empty node paths and
does an early exit on deleted nodes to avoid checking the node and its
descendants.
Also made a minor change in NodePath::rel_path_to() to avoid resizing a
Vector many times for long paths (with copy-on-write each time). Now
it's down to 2 resize calls in any case.
|
|
|
|
This PR implements range iterators in the base containers (Vector, Map, List, Pair Set).
Given several of these data structures will be replaced by more efficient versions, having a common iterator API will make this simpler.
Iterating can be done as follows (examples):
```C++
//Vector<String>
for(const String& I: vector) {
}
//List<String>
for(const String& I: list) {
}
//Map<String,int>
for(const KeyValue<String,int>&I : map) {
print_line("key: "+I.key+" value: "+itos(I.value));
}
//if intending to write the elements, reference can be used
//Map<String,int>
for(KeyValue<String,int>& I: map) {
I.value = 25;
//this will fail because key is always const
//I.key = "hello"
}
```
The containers are (for now) not STL compatible, since this would mean changing how they work internally (STL uses a special head/tail allocation for end(), while Godot Map/Set/List do not).
The idea is to change the Godot versions to be more compatible with STL, but this will happen after conversion to new iterators have taken place.
|
|
* The harcoded 8 slots are no more and impose limits in the new extension system.
* New system is limitless, although it will impose small performance hit with a mutex.
* Use a token to request the instance binding.
**Warning**: Mono will most likely break as a result of this, will need to be modified to use the new system.
|
|
* Unifies how material parameters are updated.
* Single function, easier to maintain.
* Updates materials properly when textures change.
|
|
|
|
-Add a v-sync mode setting which allows to choose between DISABLED, ON, ADAPTIVE and MAILBOX
-Removed the V-Sync via Compositor option
|
|
shortcuts
|
|
|
|
Would cause memory leak when the context was `start`ed but not
`finish`ed.
|
|
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
|
|
This commit adds a new method to the `InputMap`, allowing the user to get the value of an action's dead zone as a float.
|