Age | Commit message (Collapse) | Author |
|
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.
|
|
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.
|
|
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
|
|
|
|
|
|
- `etc` module was renamed to `etcpak` and modified to use the new library.
- PKM importer is removed in the process, it's obsolete.
- Old library `etc2comp` is removed.
- S3TC compression no longer done via `squish` (but decompression still is).
- Slight modifications to etcpak sources for MinGW compatibility,
to fix LLVM `-Wc++11-narrowing` errors, and to allow using vendored or
system libpng.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
|
|
|
|
There's now only 3 addressing modes: stack, constant, and member.
Self, class, and nil are now present respectively in the first 3 stack
slots. Global and class constants are moved to local constants when
compiling. Named globals is only present on editor to use on tool
singletons, so its use now emits a new instruction to copy the global to
the stack.
This allow us to further optimize the VM later by embedding the
addressing modes in the instructions themselves, which is better done
with less permutations.
|
|
This is meant for testing the GDScript implementation, not for testing
user scripts nor testing the engine using scripts.
Tests consists in a GDScript file and a .out file with the expected
output. The .out file format is: expected status (based on the enum
GDScriptTest::TestStatus) on the first line, followed by either an error
message or the resulting output. Warnings are added after the first
line, before the output (or compiler errors) if the parser pass without
any error.
The test script must have a function called `test()` which takes no
argument. Such function will be called by the test runner. The test
should not have any dependency unless it's part of the test too. Global
classes (using `class_name`) are registered before the runner starts, so
those should work if needed.
Use the command `godot --gdscript-generate-tests
godot-source/modules/gdscript/tests/scripts` to update the .out files
with the current output (make sure the output are the expected values
before committing).
The tests themselves are part of the doctest suite so those can be
executed with `godot --test`.
Co-authored-by: Andrii Doroshenko (Xrayez) <xrayez@gmail.com>
|
|
|
|
Document secure wss:// caveats for WebSocketClient
|
|
Fix infinite loop when guessing argument type from parent class
|
|
Fix stack overflow in setter
|
|
See https://github.com/godotengine/godot/issues/37739.
|
|
W4RH4WK/always-dynamically-allocate-property-table
Always dynamically allocate PropertyTable
|
|
|
|
|
|
unload it
|
|
|
|
GDScript: Properly validate return type
|
|
When the type cannot be validated at compile time, the runtime must do a
check to ensure type safety is kept, as the code might be assuming the
return type is correct in another place, leading to crashes if the
contract is broken.
|
|
|
|
|
|
|
|
|
|
jmb462/fix-VisualScriptFunctionState-connect-to-null-signal-crash
Fix VisualScriptFunctionState connect to null object crash (Fix #47572)
|
|
Fix GDScript variables addresses getting mixed
|