Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Add operator `*` to `Plane`
|
|
This is not enabled by default in the core version for performance reasons,
as Vector/CowData are used in critical code paths where not zero'ing memory
which is going to be set later on can be important.
But for bindings / the scripting API, we make zero the new items by default
(which already happened for built types like Vector3, etc., but not for
trivial types like int, float).
Fixes #43033.
Co-authored-by: David Hoppenbrouwers <david@salt-inc.org>
|
|
bluenote10/feature/consistent_transform_operations
Fix consistency of translated/scaled/rotated in Transform2D and Transform3D
|
|
|
|
Add a larger bucket size pool for the new Projection Matrix.
|
|
Variant memory pools
|
|
|
|
Remove Signal connect binds
|
|
Remove the optional argument p_binds from `Object::connect` since it was deprecated by Callable.bind().
Changed all uses of it to Callable.bind()
|
|
|
|
|
|
|
|
bluenote10/feature/rename_translated_to_translated_local
|
|
|
|
|
|
- RPC configurations are now dictionaries.
- Script.get_rpc_methods renamed to Script.get_rpc_config.
- Node.rpc[_id] and Callable.rpc now return an Error.
- Refactor MultiplayerAPI to allow extension.
- New MultiplayerAPI.rpc method with Array argument (for scripts).
- Move the default MultiplayerAPI implementation to a module.
|
|
|
|
|
|
On #43310, class reference was automatically updated from source,
causing xml documentation to disagree with parameter naming
description on Plane.intersects_segment().
Weirdly, it also changed the parameter for Plane.is_point_over()
from point to plane, when only the first has sense (and it is
defined on math.Plane as "const Vector3 &p_point"). Manual
mistake?
* Update begin/end to from/to on Plane.intersects_segment(...)
docs description to match source
* Update Plane bindings to use points instread of plane for
is_point_over(...)
* Change Plane.is_point_over(plane) to Plane.is_point_over(point)
AND its description on docs
Fixes godotengine/godot-docs#5976
|
|
Implement built-in classes Vector4, Vector4i and Projection.
* Two versions of Vector4 (float and integer).
* A Projection class, which is a 4x4 matrix specialized in projection types.
These types have been requested for a long time, but given they were very corner case they were not added before.
Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity.
**Q**: Why Projection and not Matrix4?
**A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
|
|
|
|
|
|
|
|
support to the GDextension API.
|
|
Allows to specify the binder that an enum must be treated as a bitfield.
|
|
Memory pools via PagedAllocator for Transform2D, Transform3D, Basis and AABB.
|
|
TokageItLab/importer-retarget-registered-gdhumanoid
|
|
Prevent out-of-bounds write in array conversion; avoid logspam on empty arrays.
|
|
|
|
|
|
|
|
|
|
Add a const call mode to Object, Variant and Script.
|
|
Add generalized version of `wrap` function
|
|
GDScript: Fix setter being called in chains for shared types
|
|
For this to work safely (user not call queue_free or something in the expression), a const call mode was added to Object and Variant (and optionally Script).
This mode ensures only const functions can be called, making it safe to use from the editor.
Co-Authored-By: reduz <reduzio@gmail.com>
|
|
|
|
When a type is shared (i.e. passed by reference) it doesn't need to be
called in a setter chain (e.g. `a.b.c = 0`) since it will be updated in
place.
This commit adds an instruction that jumps when the value is shared so
it can be used to skip those cases and avoid redundant calls of setters.
It also solves issues when assigning to sub-properties of read-only
properties.
|
|
|
|
|
|
Clean up and do fixes to hash functions and newly introduced murmur3 hashes in #61934
* Clean up usage of murmur3
* Fixed usages of binary murmur3 on floats (this is invalid)
* Changed DJB2 to use xor (which seems to be better)
|