Age | Commit message (Collapse) | Author |
|
|
|
* Using C-style function pointers now, InternalMethod is gone.
* This ensures much better performance in typed code.
* Renamed builtin_funcs to utility_funcs, to avoid naming confusion
|
|
Minor clamp and float fixes
|
|
-Moved Expression to use this, removed its own.
-Eventually GDScript/VisualScript/GDNative need to be moved to this.
-Given the JSON functions were hacked-in, removed them and created a new JSONParser class
-Made sure these functions appear properly in documentation, since they will be removed from GDScript
|
|
|
|
Change DocData comparators for MethodDoc and ArgumentDoc to get a better
ordering of constructors.
|
|
Color: Fix -Wtype-limits GCC warning after refactoring
|
|
Warning from GCC 10.2.0 with `warnings=extra`:
```
./core/math/color.h: In member function 'int32_t Color::get_r8() const':
./core/typedefs.h:107:42: error: comparison of unsigned expression in '< 0' is always false [-Werror=type-limits]
107 | #define CLAMP(m_a, m_min, m_max) (((m_a) < (m_min)) ? (m_min) : (((m_a) > (m_max)) ? m_max : m_a))
| ~~~~~~^~~~~~~~~
./core/math/color.h:201:49: note: in expansion of macro 'CLAMP'
201 | _FORCE_INLINE_ int32_t get_r8() const { return CLAMP(uint32_t(r * 255.0), 0, 255); }
| ^~~~~
```
Also some code consistency changes while at it.
|
|
|
|
-Removed FuncRef, since Callable makes it obsolete
-Removed int_types.h as its obsolete in c++11+
-Changed color names code
|
|
-Discern between named, indexed and keyed
-Get direct access to functions for typed GDScript and GDNative bindings
-Small changes to some classes in order to work with the new setget binder
|
|
-Using classes to call and a table
-For typed code (GDS or GDNative), can obtain functions to call prevalidated or ptr.
|
|
|
|
|
|
It's non-deterministic so it's better to show a fixed value like 0 instead of
having it potentially change whenever `randomize()` is called.
Fixes #43317.
|
|
Includes various changes triggered by the refactoring of method bindings.
|
|
Also separated Light2D in PointLight2D and DirectionalLight2D.
Used PointLight2D because its more of a point, and it does not work
the same as OmniLight (as shape depends on texture).
Added a few utility methods to Rect2D I needed.
|
|
|
|
Allows to extend `RandomNumberGenerator` via C++ modules.
|
|
Moved to a system using variadic templates, shared with CallableBind.
New code is cleaner, faster and allows for much better optimization of core
type functions from GDScript and GDNative.
Added Variant::InternalMethod function for direct call access.
|
|
Removed unused method Geometry3D.get_uv84_normal_bit
|
|
-Sphere Attractor
-Box Attractor
-Vector Field
-Sphere Collider
-Box Collider
-Baked SDF Collider
-Heightmap Collider
|
|
|
|
Allow commutative multiplication in Variant
|
|
is_equal_approx is able to handle values of any size, and is_equal_approx_ratio is no longer used in any exposed APIs, so we don't need is_equal_approx_ratio anymore. Also, add #ifdef MATH_CHECKS for a method that is only used when MATH_CHECKS is defined.
|
|
|
|
Add __NetBSD__ to `platform_config.h` so that it can find `alloca`
and use the proper `pthread_setname_np` format.
Rename RANDOM_MAX to avoid conflict with NetBSD stdlib.
Fixes #42145.
|
|
Also allow quaternions to be multiplied by integers.
|
|
|
|
Ensures a valid Basis is created with all constructors.
|
|
|
|
|
|
Add a test suite for Expression
|
|
This also makes the first parameter of `Expression::execute()` optional
from C++. Previously, it was only optional in the scripting API.
|
|
|
|
|
|
The input to smoothstep is not actually a weight, and the decscription
of smoothstep was pretty hard to understand and easy to misinterpret.
Clarified what it means to be approximately equal.
nearest_po2 does not do what the descriptions says it does. For one,
it returns the same power if the input is a power of 2. Second, it
returns 0 if the input is negative or 0, while the smallest possible
integral power of 2 actually is 1 (2^0 = 1). Due to the implementation
and how it is used in a lot of places, it does not seem wise to change
such a core function however, and I decided it is better to alter the
description of the built-in.
Added a few examples/clarifications/edge-cases.
|
|
Also a few minor API changes like adding AABB.abs()
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
|
|
Make all String integer conversion methods be 64-bit
|
|
Move GI to a deferred pass
|
|
|
|
|
|
- Fixed floating point issue on the old one.
- Fixed the equation on the get_euler_yxz function.
- Added unit tests.
This work has been kindly sponsored by IMVU.
|
|
Fix for Expression class: string inside an expression can't be single quoted
|
|
Closes godotengine/godot-docs#3667.
Supersedes #39405.
|
|
|
|
|
|
Extra `_2d` suffixes are removed from 2D methods accoringly.
|
|
Semicolons are not necessary after function definitions or control flow
blocks, and having some code use them makes things inconsistent (and
occasionally can mess up `clang-format`'s formatting).
Removing them is tedious work though, I had to do this manually (regex
+ manual review) as I couldn't find a tool for that. All other code
folders would need to get the same treatment.
|
|
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
|