Age | Commit message (Collapse) | Author |
|
In attribute expressions (`a.b`) it's possible that the base has an
incorrect syntax and thus become a nullptr expression in the tree. This
commit add the check for this case to fail gracefully instead of
crashing.
|
|
|
|
- Lambdas are always callables (no specific signature match).
- Captures from the current context are evaluated.
|
|
Lambda syntax is the same as a the function syntax (using the same
`func` keyword) except that the name is optional and it can be embedded
anywhere an expression is expected. E.g.:
func _ready():
var my_lambda = func(x):
print(x)
my_lambda.call("hello")
|
|
|
|
Core: Drop custom `copymem`/`zeromem` defines
|
|
Update CSGMesh3D's documentation to explain how vertex normals are used
|
|
|
|
|
|
We've been using standard C library functions `memcpy`/`memset` for these since
2016 with 67f65f66391327b2967a20a89c3627e1dd6e84eb.
There was still the possibility for third-party platform ports to override the
definitions with a custom header, but this doesn't seem useful anymore.
|
|
fixes #30229
|
|
Remove duplicate comments
|
|
Remove uses of `auto` for better readability and online code reviews
|
|
The current code style guidelines forbid the use of `auto`.
Some uses of `auto` are still present, such as in UWP code (which
can't be currently tested) and macros (where removing `auto` isn't
easy).
|
|
Fix new `CSGMesh` errors
|
|
A few single line comments were duplicated, probably due to bad merges.
This commit removes the obviously duplicate ones.
|
|
|
|
|
|
Fix mismatch between String and StringName in dictionary keys
|
|
Make LSP update the filesystem for changed scripts
|
|
Added an occlusion culling system with support for static occluder meshes.
It can be enabled via `Project Settings > Rendering > Occlusion Culling > Use Occlusion Culling`.
Occluders are defined via the new `Occluder3D` resource and instanced using the new
`OccluderInstance3D` node. The occluders can also be automatically baked from a
scene using the built-in editor plugin.
|
|
|
|
There was a mixup between String and StringName keys. Now they're
clearly separated. This also means you have to consider which type
you're using for the dictionary keys and how you are accessing them.
|
|
Removed _direct_state_changed bindings
Affects 2D and 3D nodes
Callbacks now use Callable
Tests were changed accordingly
|
|
fbx: Fix include for zlib that broke unbundling
|
|
|
|
|
|
It's possible to link against system zlib on Linux, so we should use system paths.
|
|
Print a warning when trying to seek in VideoPlayer
|
|
Heightmap collision shape support in Godot Physics
|
|
GDScript: Use special stack space for temporaries to reduce type changes
|
|
Rename LineEdit getters and setters to match property names
|
|
Import: Cleanup and optimize etcpak compression method
|
|
|
|
The trampolines were casting double to `size_t` (likely a copy-paste
mistake), so the value was getting truncated.
|
|
Avoid unnecessary allocation of temporary buffers for each mip, and creates
only one Image with the compressed data.
Also renames variable and reorders code for clarity.
Clarify that squish is now only used for decompression.
Documented which formats can be decompressed in Image.
|
|
|
|
|
|
FBX Improve Parser and File Compatibility
|
|
Rename get_surface_material to get_surface_override_material
|
|
The base object will inherit the property table, for every FBX object, if it doesn't exist it will be ignored.
The previous code was dangerous and not simple to understand, this makes the code simpler and should result in no leaks with PropertyTable.
Features/Fixes:
Adds ability for multiple millions of polygons to be loaded.
Fixes memory leaks with tokens
Fixes memory leaks with property table
Fixes loading some corrupt files
Fixes meshes not having a unique name to the mesh node.
Opens up loading for two more versions: 7100 and 7200, up to 2020.
Preliminary support for Cinema4D files in parser now, before this was not possible it would cause memory corruption, which is gone now.
FBXProperties not being pointers presented simpler challenges in the long run also, fixed a bunch of bugs.
|
|
|
|
Seeking isn't implemented in built-in video formats and can only
be supported in GDNative-provided video formats.
|
|
So the stack slots perform less type changes, which is useful for
future optimizations.
|
|
This updates global classes and exposes base member variables.
Fixes #39713
|
|
etcpak: We only need the compression code, remove rest of etcpak app
|
|
We do our own image loading, threading, and memory management in Godot already,
so the only components we need from etcpak (at least as of now) are the
`Compress*` methods defined in `ProcessDxtc.cpp` and `ProcessRGB.cpp`.
So we don't need to compile or vendor the rest.
|
|
-Used a more consistent set of keywords for the shader
-Remove all harcoded entry points
-Re-wrote the GLSL shader parser, new system is more flexible. Allows any entry point organization.
-Entry point for sky shaders is now sky().
-Entry point for particle shaders is now process().
|
|
Blackiris/fix-corrupt-scene-when-export-has-setter
Fix corrupt scene when export var has setter
|
|
Fix type argument in is_builtin which was treated as an address
|