Age | Commit message (Collapse) | Author |
|
Generates the rpc and rset info for exported GDScript.
|
|
Fixed rset method for gdscript and visual script
|
|
Found via `codespell`
|
|
GDScript duplicate arguments bug fixed
|
|
fix: Classes can't have pass
|
|
Fix: logic error in gdscript_parser.cpp for-loop-range
|
|
ScriptDebugger refactor, threading, profilers.
|
|
Fix missing module editor icons
|
|
Module icons need to be renamed to PascalCase as well
for them to be registered in 4.0.
See godotengine/godot#36513.
|
|
Return only scenes for script owners on LSP completion
|
|
EngineDebugger is the new interface to access the debugger.
It tries to be as agnostic as possible on the data that various
subsystems can expose.
It allows 2 types of interactions:
- Profilers:
A subsystem can register a profiler, assigning it a unique name.
That name can be used to activate the profiler or add data to it.
The registered profiler can be composed of up to 3 functions:
- Toggle: called when the profiler is activated/deactivated.
- Add: called whenever data is added to the debugger
(via `EngineDebugger::profiler_add_frame_data`)
- Tick: called every frame (during idle), receives frame times.
- Captures: (Only relevant in remote debugger for now)
A subsystem can register a capture, assigning it a unique name.
When receiving a message, the remote debugger will check if it starts
with `[prefix]:` and call the associated capture with name `prefix`.
Port MultiplayerAPI, Servers, Scripts, Visual, Performance to the new
profiler system.
Port SceneDebugger and RemoteDebugger to the new capture system.
The LocalDebugger also uses the new profiler system for scripts
profiling.
|
|
Fix: #36680
|
|
there was a logic error in for loop range argument that
check if all of the argument were constants, fixed
|
|
|
|
|
|
|
|
|
|
|
|
Improved the send rpc log message when fail.
This work has been kindly sponsored by IMVU.
|
|
Add a practical example for `@GDScript.linear2db()`
|
|
Improve the `@GDScript.inverse_lerp()` documentation
|
|
Reimplement `Mutex` with C++'s `<mutex>` (plus more)
|
|
One of its most common applications in games is for volume sliders.
See https://www.dr-lex.be/info-stuff/volumecontrols.html for
more information.
|
|
This closes https://github.com/godotengine/godot-docs/issues/2589.
|
|
Fix autocomplete and highlighting for new integer types
|
|
Types include new integer types and others
|
|
Main:
- It's now implemented thanks to `<mutex>`. No more platform-specific implementations.
- `BinaryMutex` (non-recursive) is added, as an alternative for special cases.
- Doesn't need allocation/deallocation anymore. It can live in the stack and be part of other classes.
- Because of that, it's methods are now `const` and the inner mutex is `mutable` so it can be easily used in `const` contexts.
- A no-op implementation is provided if `NO_THREADS` is defined. No more need to add `#ifdef NO_THREADS` just for this.
- `MutexLock` now takes a reference. At this point the cases of null `Mutex`es are rare. If you ever need that, just don't use `MutexLock`.
- Thread-safe utilities are therefore simpler now.
Misc.:
- `ScopedMutexLock` is dropped and replaced by `MutexLock`, because they were pretty much the same.
- Every case of lock, do-something, unlock is replaced by `MutexLock` (complex cases where it's not straightfoward are kept as as explicit lock and unlock).
- `ShaderRD` contained an `std::mutex`, which has been replaced by `Mutex`.
|
|
Improve LSP completion using scene owner
|
|
Fixes: #36473
|
|
- Renames PackedIntArray to PackedInt32Array.
- Renames PackedFloatArray to PackedFloat32Array.
- Adds PackedInt64Array and PackedFloat64Array.
- Renames Variant::REAL to Variant::FLOAT for consistency.
Packed arrays are for storing large amount of data and creating stuff like
meshes, buffers. textures, etc. Forcing them to be 64 is a huge waste of
memory. That said, many users requested the ability to have 64 bits packed
arrays for their games, so this is just an optional added type.
For Variant, the float datatype is always 64 bits, and exposed as `float`.
We still have `real_t` which is the datatype that can change from 32 to 64
bits depending on a compile flag (not entirely working right now, but that's
the idea). It affects math related datatypes and code only.
Neither Variant nor PackedArray make use of real_t, which is only intended
for math precision, so the term is removed from there to keep only float.
|
|
|
|
Replace FALLTHROUGH macro by C++17 [[fallthrough]]
|
|
This attribute is now part of the standard we target so we no longer
need compiler-specific hacks.
Also enables -Wimplicit-fallthrough for Clang now that we can properly
support it. It's already on by default for GCC's -Wextra.
Fixes new warnings raised by Clang's -Wimplicit-fallthrough.
|
|
WARNING: Requires C++17 'guaranteed copy elision' to fix ambiguous
operator problems in Variant.
This was added for this commit (and future C++17 uses) in #36457.
|
|
Also changed all relevant properties defined manually to StringName.
|
|
|
|
objects and made them default.
|
|
This is needed because of the new changes to Variant. The reference
counter is increased by adding it to a Variant, which means no GDScript
will be freed (or will be double freed if manually freed somewhere).
|
|
Handle removal of Pool*Array types and other recent changes.
|
|
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are
sugar for `Vector<Type>`.
|
|
|
|
|
|
Those keywords were deprecated for 3.1 in #22087.
Also fix token name for `TK_REMOTE`, should be "remote" like the keyword.
|
|
Remove deprecated decimals builtin
|
|
32 bits.
|
|
Optmized data sent during RPC and RSet calls.
|
|
Replaced by 'step_decimals' in 3.2 via #21425.
|
|
- Now is sent the method ID rather the full function name.
- The passed IDs (Node and Method) are compressed so to use less possible space.
- The variant (INT and BOOL) is now encoded and compressed so to use much less data.
- Optimized RPCMode retrieval for GDScript functions.
- Added checksum to assert the methods are the same across peers.
This work has been kindly sponsored by IMVU.
|
|
|
|
|