Age | Commit message (Collapse) | Author |
|
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
|
|
|
|
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.
|
|
Force String as Dictionary key instead of StringName
|
|
* Lua table syntax uses named indexing: `{ mykey = myvalue }`
* Python style syntax uses string indexing: `{ "mykey" : myvalue }`
* Both are incompatible since a StringName key wont fetch a String key, hence confusing.
* This PR proposes always using String for indexing at a very minimal performance cost. Always indexing with StringNames will be faster, but they are considerably more expensive to create.
|
|
|
|
Also use const more often.
|