Releases: godotengine/godot-cpp
Releases · godotengine/godot-cpp
godot-4.4-stable
What's Changed
- Make generated code mostly style compliant by @AThousandShips in #1528
- Avoid hardcoded type conversion for metadata by @raulsntos in #1555
- Fix incorrect generation of some C++ operators by @mihe in #1557
- Correct type for
char16
andchar32
meta by @raulsntos in #1554 - Fix missing MAKE_TYPED_ARRAY_INFO for Packed*Arrays by @aaronfranke in #1558
- [Web/SCons] Use CCFLAGS for SIDE_MODULE option by @Faless in #1560
- Fix GCC 14 -Wtemplate-id-cdtor warning by @Spartan322 in #1561
- Add a test to ensure that library path is absolute by @dsnopek in #1520
- Add hot reload support when building with GCC and CMake by @ytnuf in #1548
- Add support for LLVM/MinGW and ARM64 Windows builds. by @bruvzg in #1535
- Add visibility-hidden to CMake build by @APokorny in #1563
- add SYMBOL_VISIBILITY cache variable to match scons interface. by @enetheru in #1579
- Update bindings to 4.4.dev2 by @Repiteo in #1593
- Updated all variable names to use GODOT_ prefix by @enetheru in #1583
- Implement typed dictionaries by @Repiteo in #1162
- [SCons] Enable WASM_BIGINT in web builds by @Faless in #1603
- Update .gitignore to add .idea for the Jetbrains CLion IDE by @enetheru in #1599
- VSProj Configure type on build command - to resolve #1582 by @enetheru in #1600
- Re-Structure cmake solution to be closer to the scons solution. by @enetheru in #1595
- [SCons] Remove use_clang_cl windows flag in favor of generic use_llvm by @Faless in #1602
- SCons: Don't cache libraries by @Repiteo in #1611
- Add
p_use_model_front
toBasis::looking_at()
by @Flarkk in #1625 - Correctly set instance bindings on reload by @dsnopek in #1590
- Sync
Quaternion
with the version in Godot by @dsnopek in #1630 - Allow unicode class names by @dsnopek in #1574
- Directly get object instance ID from
Variant
and implementVariant::get_validated_object()
by @dsnopek in #1591 - Avoid
thread_local
on MacOS to prevent issues with hot reload by @dsnopek in #1594 - CI: Add
runner
workflow to call other workflows by @Repiteo in #1622 - Remove unimplemented static variant functions 'blend' and 'interpolate'… by @ruffenman in #1626
- Update for new NOTIFICATION_POSTINITIALIZE handling by @dsnopek in #1568
- Rename Vector4.components -> coords. by @Ivorforce in #1609
- Fix crash in
ClassDB::add_virtual_method()
if arguments metadata is the wrong size by @dsnopek in #1581 - [Web] Don't cache emsdk by @AThousandShips in #1639
- Add lto scons option by @Ivorforce in #1601
- Modernise existing cmake options by @enetheru in #1598
- Use namespace in defs.hpp by @zhehangd in #1617
- CMake: Align MSVC runtime (MD[d], MT) options to engine by @enetheru in #1647
- CMake: fix break for build prior to modernisation PR by @enetheru in #1649
- Update gdextension_interface.h. Add metadata to GetTypeInfo of char16_t and char32_t. by @Ivorforce in #1654
- Add
print_line
for compatibility with engine modules by @aaronfranke in #1653 - Don't print an error when decoding a null Ref by @dsnopek in #1616
- Add variant_internal.hpp. by @Ivorforce in #1655
- CMake: Fix selection of MSVC Runtime compile flags by @enetheru in #1663
- CMake: Replace empty ${EXCLUDE} variable with EXCLUDE_FROM_ALL by @enetheru in #1660
- CMake: Handle GODOT_DEV_BUILD flag by @enetheru in #1648
- CMake: Enable using clang-cl on windows by @enetheru in #1651
- Add a separate setup-godot-cpp github action. by @Ivorforce in #1656
- Fix
print_verbose()
macro conflicting withUtilityFunctions::print_verbose()
by @dsnopek in #1668 - Add a method to set the class icon by @raulsntos in #1666
- [Bindings] Build profile now strips methods and skip files by @Faless in #1680
- CMake: Alleviate target name clashes, visibility, and grouping. by @enetheru in #1658
- Update for virtual method compatibility system by @dsnopek in #1676
- CMake: Support for using build_profile.json by @enetheru in #1670
- CMake: Support for XML documentation by @enetheru in #1682
- Update README.md with new pre-commit instructions by @bgie in #1686
- Fix buffer overrun with enums pointers cast to int64_t* when enum is only 32-bit by @bgie in #1687
- fix typed_dictionary compile-time regression by @IvanInventor in #1628
- CMake: Fix #1690 - DEBUG_FEATURES generator expression by @enetheru in #1691
- Bump actions/upload-artifact from 3 to 4 by @dependabot in #1335
- CMake: Implement 'threads' Option by @enetheru in #1698
- CMake: Fix for #1699 msvc runtime selection issues by @enetheru in #1701
- CMake: GodotCPPModule.cmake by @enetheru in #1707
- CMake: Fix unknown architecture and simplify OSX_ARCHITECTURES by @enetheru in #1708
- CMake: Create destination folder for doc_source.cpp generation by @enetheru in #1709
- Style: Replace
_NO_DISCARD_
macro with[[nodiscard]]
by @Repiteo in #1713 - CMake: Add generate_bindings custom target by @enetheru in #1720
- Update
GDVIRTUAL*()
macros to match Godot 4.4 by @dsnopek in #1719 - CMake: Rename all GODOT_ to GODOTCPP_ by @enetheru in #1721
New Contributors
- @Spartan322 made their first contribution in #1561
- @APokorny made their first contribution in #1563
- @enetheru made their first contribution in #1579
- @Flarkk made their first contribution in #1625
- @ruffenman made their first contribution in #1626
- @bgie made their first contribution in #1686
- @IvanInventor made their first contribution in #1628
Full Changelog: godot-4.3-stable...godot-4.4-stable
godot-4.3-stable
What's Changed
- Prevent
-Wtype-limits
warning on GCC 11 due to unsigned comparison by @dsnopek in #1323 - CMake: Remove hardcoded warnings list and forcing -Werror on library builds by @akien-mga in #1324
- Bump actions/setup-python from 4 to 5 by @dependabot in #1329
- Add PackedRealArray as an alias for PackedFloat(32/64)Array by @aaronfranke in #1340
- Allow detecting when building as a GDExtension by @aaronfranke in #1339
- Add an error message if android NDK is not installed by @ArchLinus in #1344
- Fix expected argument count for call errors by @AThousandShips in #1346
- Add
Vector2i/3i/4i
methods:distance_to
anddistance_squared_to
by @Chubercik in #1347 - Add missing
OP_POWER
operator toVariant
by @AThousandShips in #1349 - Remove "godot" namespace when binding global constants. by @Daylily-Zeleen in #1351
- Update README.md with basic pre-requisites by @nightblade9 in #1354
- Fix
AABB.encloses
failing on shared upper bound by @AThousandShips in #1360 - Rework GDCLASS macro to allow abstract classes by @Naros in #1359
- Switch to 64-bit ints. by @bruvzg in #1357
- Update README: fix godot-cpp issue tracker url by @MJacred in #1370
- Added newer Variant types to
typed_array.hpp
by @allenwp in #1384 - Fix object return value of builtin types' methods. by @Daylily-Zeleen in #1363
- Allow GDExtensions to register virtual methods and call them on scripts (godot-cpp support) by @dsnopek in #1377
- [SCons] Add support for custom build tools and platforms by @Faless in #1391
- Use latest doc version in issue template by @AThousandShips in #1367
- [SCons] Split
targets.py
, apply flags from tools by @Faless in #1392 - Allow registering "runtime classes" by @dsnopek in #1256
- [Core] Improve
CowData
andMemory
metadata alignment. by @bruvzg in #1383 - Fix crash on virtual method calls by @AThousandShips in #1404
- Fix
_notification()
with parent and child classes by @dsnopek in #1381 - Fix explicit namespaces in macros by @Zylann in #1408
- Fix invalid
void
return inBitField
by @AThousandShips in #1407 - Use explicit
::godot
namespace in gdvirtual.gen.inc by @dsnopek in #1412 - [Packed*Array] Add support for initializer lists. by @bruvzg in #1399
- Add support for getting argument count from
Callable
s by @AThousandShips in #1375 - Load new
script_instance_create3
GDExtension interface function by @dsnopek in #1397 - Avoid creating most objects that Godot is going to use placement new to initialize (mark 2) by @dsnopek in #1379
- Enforce template syntax
typename
overclass
by @Repiteo in #1409 - Add extension support for argument count to
ScriptInstance
by @AThousandShips in #1413 - Change cmake required to v3.13 by @ytnuf in #1417
- Fix incorrect utility call signature by @AThousandShips in #1422
- Use
GDREGISTER
defines in example by @Repiteo in #1435 - Bump mymindstorm/setup-emsdk from 13 to 14 by @dependabot in #1371
- Implement
verbose
toggle from godot repo by @Repiteo in #1364 - Fix Projection create_orthogonal being incorrect by @thimenesup in #1438
- Fix PropertyInfo to use hint/usage default constants by @Naros in #1440
- [Math] Add
is_finite
methods by @AThousandShips in #1436 - Implement to/from dict helpers for PropertyInfo/MethodInfo by @Naros in #1443
- Fix create instance func by @pupil1337 in #1431
- Give compile-time error if registering a class without its own
_bind_methods()
function by @dsnopek in #1448 - Correctly handle
Object *
arguments that were encoded asnullptr
by @dsnopek in #1405 - Allow forwarding from
ClassDB
toClassDBSingleton
to support enumerations by @dsnopek in #1445 - Add scalar versions of
Vector*
min/max/clamp/snap(ped)
by @AThousandShips in #1437 - [Core] Add
LocalVector::has
for convenience by @AThousandShips in #1455 - Add support for
PackedVector4Array
by @dsnopek in #1456 - Allow submitting documentation to the Godot editor by @dsnopek in #1374
- Update
free_property_list
callback to take count by @dsnopek in #1450 - Attempt to fix recent CI failures on
master
branch by @dsnopek in #1461 - Clean up instance bindings for engine singletons to prevent crash by @dsnopek in #1458
- Fix README Examples and Templates TOC Entry by @aarjaneiro in #1462
- [Core] Reduce and prevent unnecessary random-access to
List
by @AThousandShips in #1457 - [SCons] Add option to build without threads by @Faless in #1451
- Mark return value of
get_class_static
andget_parent_class_static
as const. by @Daylily-Zeleen in #1463 - Fix NOTIFICATION_POSTINITIALIZE sent twice to native parent classes by @dsnopek in #1447
- Catch up with minor changes to
gdextension_interface.h
by @dsnopek in #1473 - Explicitly refer to
godot
namespace inGDREGISTER_*_CLASS()
macros by @dsnopek in #1477 - Fix undefined symbol error on Linux with virtual methods that take
Node *
arguments by @dsnopek in #1484 - Fix warnings emitted with -Wall by @richardhozak in #1478
- Fix tests after upstream change to
Node::to_string()
by @dsnopek in #1486 - [TextServer, GDExtension] Fix building text servers as GDExtension, expose new/changed low-level methods to GDExtension API. by @bruvzg in #1479
- Fix generating default values for
StringName
by @AThousandShips in #1487 - Fix vararg methods forwarded to the
ClassDB
singleton by @dsnopek in #1485 - Add default argument processing for
NodePath
by @AThousandShips in #1488 - Set instance and instance binding in
Wrapped
constructor. by @Daylily-Zeleen in #1446 - Allow selecting Godot version to run the tests with by @dsnopek in #1493
- Add support for build profiles. by @Faless in #1167
- [Web] Force emcc to use "wasm" longjmp mode by @Faless in #1489
- [CI] Update macOS workers to macos-latest by @Faless in #1496
- Enforce
p_
prefixes for arguments in binds by @AThousandShips in #1490 - Fix some style details in generation by @AThousandShips in #1423
- Add missing enum & ctor for PackedVector4Array implementation by @Naros in #1497
- Replace legacy hooks with
pre-commit
Python tool by @Repiteo in #1504 - Fix
#include
formatting by @Repiteo in #1505 - Add
.editorconfig
, consolidate.gitattributes
by @Repiteo in #1506 - SCons: Add
silence_msvc
option for Windows by @Repiteo in #1507 - Fix sharing of typed arrays from constructor by @AThousandShips in https://gi...
godot-4.2.2-stable
godot-4.1.4-stable
godot-4.2.1-stable
Full Changelog: godot-4.2-stable...godot-4.2.1-stable
godot-4.2-stable
What's Changed
- [MSVC] Force UTF-8 encoding. by @bruvzg in #1175
- Import
env
if possible by @adamscott in #1170 - Add lower-case "*.cache" in ".gitignore" by @adamscott in #1172
- In generated methods, only allocate the method StringName the first time by @dsnopek in #1176
- Attempt to fully implement CharString by @dsnopek in #1150
- Add support for indexed properties by @mihe in #1186
- Don't call parent _get_property_list when a class doesn't define it (for internal binding). by @Zylann in #1184
- Don't cache
null
forever if a singleton isn't available yet by @Zylann in #1181 - Add platform macros by @adamscott in #1188
- [SCons] Add option to generate a compilation database. by @Faless in #1189
- [SCons] Merge OSXCross tools into platform ones by @Faless in #1191
- Implement
String::resize()
in godot-cpp by @dsnopek in #1166 - Statically link mingw/msvc runtime libraries on Windows by @dsnopek in #1203
- Added generated version header by @Zylann in #1193
- Add automated tests to verify some previous fixes by @dsnopek in #1209
- Fix Clang deprecated builtins by @adamscott in #1211
- Fix forgotten not operator by @adamscott in #1215
- SCons: Sync
targets.py
fully with upstream Godot by @akien-mga in #1204 - Add remaining component-wise
min/max
functions toVector*
by @AThousandShips in #1197 - Fix link to test project in readme by @AThousandShips in #1218
- Clarify versions and examples in the README by @dsnopek in #1221
- Add support for placeholder_script_instance_create/update by @dsnopek in #1225
- [SCons] Move the GodotCPP build to its own tool. by @Faless in #1190
- Fix
Object::notification
order (cpp-bindings) by @Sauermann in #1151 - Fix formatting of
compatibility_minimum
examples by @AThousandShips in #1226 - Implement vararg methods of builtin classes. by @Daylily-Zeleen in #1091
- GDExtension: fix
bool
unknown in C by @Bromeon in #1228 - Ensure
const
correctness for wrappers by @AThousandShips in #1233 - Bump actions/checkout from 3 to 4 by @dependabot in #1231
- Ensure that PtrToArg specializations for native structs are used by @dsnopek in #1214
- [SCons] Fixed crashes in several scripts by @DmitriySalnikov in #1237
- Check that GDExtension is opened by compatible Godot version by @dsnopek in #1208
- Implement register unexposed classes by @Daylily-Zeleen in #970
- Support
_validate_property()
by @dsnopek in #1239 - Load 'print_error_with_message' function by @dsnopek in #1243
- Add static methods to
ClassDB
for the methods bound to theClassDB
singleton by @dsnopek in #1164 - Replace
ERR_FAIL_COND
withERR_FAIL_NULL
where applicable by @AThousandShips in #1242 - Fix allocation size overflow check in
CowData
by @AThousandShips in #1245 - Update for addition of
get_virtual_call_data_func
andcall_virtual_func
toGDExtensionClassCreationInfo2
by @dsnopek in #1246 - Add support to import custom variables from parent SConstruct (redux) by @adamscott in #1220
- Handle missing instance binding callbacks by finding the closest parent by @dsnopek in #1165
- Fix variant call compiler error (alternate) by @dsnopek in #1238
- Implement
callable_mp()
andcallable_mp_static()
by @dsnopek in #1155 - Changes necessary for hot reload to work by @dsnopek in #1200
- CI: Fix MinGW install error by pinning to earlier version by @akien-mga in #1259
- Javascript Web WASM Fix by @nicholas-maltbie in #1247
- Update for
get_class_category
added toGDExtensionScriptInstanceInfo2
by @dsnopek in #1257 - Fixes crash in ClassDB::deinitialize due to usage of invalid iterator. by @Klaim in #1260
- Miscellaneous updates to gdextension_interface.h by @dsnopek in #1264
- Declare explicit specializations for
CharStringT
by @mihe in #1265 - Use the new
string_name_new_with_latin1_chars
function to improve StringName construction performance by @dsnopek in #1263 - [SCons] Rename javascript tool to web by @Faless in #1270
- Automatically register only engine classes whose header has been included by @dsnopek in #1266
- Let
gdextension_dir
function as standalone argument by @Repiteo in #1258 - clang: Add CallableCustomMethodPointerBase virtual destructor by @capnm in #1275
- Refactor compiledb implementation by @adamscott in #1230
- Fix return value and
r_valid
value inVariant::iter_init
andVariant::iter_next
by @gilzoide in #1253 - SCons: Disable C++ exception handling by default by @akien-mga in #1216
- Add test for
Callable.bind()
by @dsnopek in #1278 - Add protections against registering classes that didn't use
GDCLASS()
by @dsnopek in #1279 - Add an automated test using a Variant iterator by @dsnopek in #1277
- Switch to using
ObjectID
in custom callables by @dsnopek in #1286 - Update the environment variables used to access the Android NDK toolchain by @m4gr3d in #1291
- Hack adding
--quit-after 100
to ensureextension_list.cfg
gets generated by @dsnopek in #1299 GDCLASS
synced by ending with "private:" by @Repiteo in #1292- Fix
is_msvc
anduse_hot_reload
variables by @Repiteo in #1303 - ignoring venv in .gitignore by @brno32 in #1301
- [iOS] Fix building as static library or xcframework, add iOS config and xcframework build script to the test project. by @bruvzg in #1302
- Revert "Hack adding
--quit-after 100
to ensure extension_list.cfg gets generated" by @dsnopek in #1304 - CI: Workaround upstream issue with .NET editor build not exiting by @akien-mga in #1308
- Add missing int→Variant conversions by @Repiteo in #1298
- Add
CallableCustom
that devs can use in their GDExtensions by @dsnopek in #1280 - Fix comparison of
Callable
s fromcallable_mp()
of the same method by @dsnopek in #1294 - CI: Install Android NDK r23c explicitly by @akien-mga in #1314
- [iOS] Bump default version to 12 to match engine. by @bruvzg in #1315
- Bump mymindstorm/setup-emsdk from 12 to 13 by @dependabot in #1317
- [Scons] Set the minimum Android API level to 21 by @DmitriySalnikov in #1318
- [iOS] Fix initialisation/termination of multiple statically linked extensions. by @bruvzg in #1316
- Make CMake only include debug symbols when appropriate by @bytzo in #1288
- Fix file list issues when trying to build with meson via cmake by @LAK132 in #1307
- [Scons] Added the ability to change the visibility of symbols by @DmitriySalnikov in https://githu...
godot-4.1.3-stable
godot-4.0.4-stable
Full Changelog: godot-4.0.3-stable...godot-4.0.4-stable
godot-4.1.2-stable
godot-3.5.3-stable
Full Changelog: godot-3.5.2-stable...godot-3.5.3-stable