Age | Commit message (Collapse) | Author |
|
When compiling with GCC it is now possible for an opcode followed by
itself to never leave the scope it is currently in. This leads to a
situation where the dtor of a scope local variable isn't called which in
turn can lead to a memory leak.
By moving the goto outside of the scope of each opcode we guarantee that
all dtors have been called before the next opcode gets dispatched.
this fixes #12401
|
|
Fixes #10972
|
|
Added new Wrap functions for numbers
|
|
|
|
used before GDScript, with squirrel apparently
|
|
Add ScriptLanguage::supports_builtin_mode and improve ScriptCreateDialog
|
|
- Make ScriptCreateDialog disable the built-in script checked button if the language does not support it.
- ScriptLanguage's get_template and make_template now receive the script path as class name if the the script language does not have named classes.
|
|
|
|
|
|
|
|
The missing usage flag led to GDNative API descriptions containting
arguments with "void" type.
|
|
This was a mistake made in 520d84e. There are no more other looping
structures left in this function.
|
|
|
|
|
|
These errors shouldn't be possible on a tested game. Remove the checks
on release. Shaves about 10% off of tight loops.
|
|
On compulers that define __GNUC__ use computed goto to directly dispatch
the next instruction rather than going through another switch statement.
This saves a jump and some comparisons.
In tight loops this is is roughly 10% faster than the switch() method.
|
|
This implement branch prediction macros likely() and unlikely() like in
Linux. When using these macros please ensure that when you use them the
condition in the branch really is very, very likely or unlikely. Think
90+% of the time. Primarily useful for error checking. (And I implement
these macros for all our error checking macros now)
See this article for more information:
https://kernelnewbies.org/FAQ/LikelyUnlikely
There are more places where these macros may make sense in renderer and
physics engine. Placing them will come in another commit down the line.
|
|
We now allow booleanization of all types. This means that empty versions
of all types now evaluate to false. So a Vector2(0,0), Dictionary(),
etc.
This allows you to write GDScript like:
if not Dictionary():
print("Empty dict")
Booleanization can now also no longer fail. There is no more valid flag,
this changes Variant and GDNative API.
|
|
As a preparation for other performance enhancements to GDScript:call()
start by removing more of the GDScript runtime checks on release.
This code has been tested with 2d/platformer, 3d/platformer,
3d/materials_test, and goltorus. No regressions were found.
|
|
In an effort to make GDScript a little faster replace the double
switch() with a computed goto on compilers that set __GNUC__. For
compilers that don't support computed goto it will fall back to regular
switch/case statements.
In addition disable using boolean values in a mathematical context. Now
boolean values can only be compared with other booleans. Booleans will
also no longer be coerced to integers.
This PR replaces #11308 and fixes #11291
|
|
of two … (#11146)
Doc: Improved descriptions in GDScript docs
Added examples and fixed return types of two methods.
|
|
Fix various assorted warnings
|
|
|
|
Fix various warnings that don't have enough instances to merit
individual commits. Also fixes a potential bug in audio_server.cpp.
|
|
|
|
|
|
The second in my quest to make Godot 3.x compile with -Werror on GCC7
|
|
DocData and virtual method type hints fixes
|
|
- Removes hardcoded parameters from built-in vararg methods and adds METHOD_FLAG_VARARG to them.
- Makes EditorHelp display built-in vararg methods correctly.
|
|
- Makes vararg methods automatically use PROPERTY_USAGE_NIL_IS_VARIANT on return types
- Completely removes the ":type" suffix for method names. Virtual methods must use the MethodInfo constructors that takes Variant::Type or PropertyHint as the first parameter for the return type (with CLASS_INFO as a helper to get the PropertyInfo). Parameters must use PROPERTY_HINT_RESOURCE_TYPE and hint string.
- PROPERTY_USAGE_NIL_IS_VARIANT is no longer needed for parameters, because parameters cannot be void.
- Adds missing PROPERTY_USAGE_NIL_IS_VARIANT to virtual and built-in methods that return Variant.
|
|
-Fix getter in code completion being displayed when it shouldn't
-Clean up preview generation for editors and exposed it as editor plugin
|
|
-fixed to code completion
-fix shader crash bug reported by tagcup
|
|
This fixes a crash running the 'goltorus' project.
|
|
|
|
|
|
These Null checks were removed in #10581 but actually changed the
logic of the functions in this case.
This fixes #10654
|
|
Make cast_to a static member of Object.
|
|
|
|
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/
|
|
Prevents showing some useless parse errors in the console.
|
|
|
|
-Disabled GDNative and GDNativeScript so build compiles again
|
|
now.
Also changed PropertyInfo to include informatino about class names.
|
|
support enums and nested constants in match statement
|
|
|
|
The initial version of the pattern matcher in GDScript does not
allow matching on nested identifiers, only one identifiers available
in the current scope.
With the introduction of enums to GDScript that's a huge missing
feature. This commit makes the parser accept indexed constants and
variables to properly support enums.
|
|
Removed unnecessary assignments
|
|
GDScript Built-in: add inverse_lerp & range_lerp
|
|
|
|
Adds Engine::is_editor_hint() method
|