Releases: migueldeicaza/SwiftGodot
0.35.0
-
Fixes exported resource references regression (bug #294, by Airyzz)
-
Creates binaries that will work with SwiftGodotBinary (Miguel)
-
Fixes implicit conversions of strings to variants, and this also
solves the problem with arrays containing garbage on the Godot editor (Miguel) -
Workaround for building on Windows (Airyzz)
-
We now use Godot's built-in docs, rather than parsing it out of
their doc files, which should bring documentations to all people
buillding SwiftGodot from source (Miguel)
0.35: update macro and tests to include .array usage flag (#284)
Fixes the SwiftGodotBinary package
0.34: update macro and tests to include .array usage flag (#284)
Fixes vararg invocations
0.33
-
StringName, GString and NodePath all adopt LosslessStringConvertible
now, which acts as a poor man's implicit conversion from strings
(not just string literals) into these types.Makes it more convenient to pass strings in source code, when the
code expects a StringName (Miguel, thanks to [email protected] for the pointer). -
Variant.isNull: convenience API
-
Simplified the method generation, reducing the number of inlined functions (Mikhail Tishin)
-
Fixes the @BindNode property wrapper (Kyle)
-
Fixed a crash in vararg methods that did not have a return value (Miguel)
-
Fixes a memory leak in ClassDB.registerMethod (Patrick Beard)
-
New #exportGroup macro to organize your variable exports (Estevan Hernandez)
-
Fixes for Swift-based Callables that did not take any arguments
(before, it would silently fail). -
Fixes leaks in Signal management (Patrick Beard)
0.32: Fix leaks when managing signals (#281)
-
Support for exporting variant and object collections with the
@export keyword (Estevan Hernandez, co-authored with Mikhail Tishin,
Ulrik Damm) -
Fixes the warnings created in some conditions by the macros
-
Flattened code generation, internally it is nicer, and it is also
slightly faster (Patrick Beard) -
Fixes leaks from signals
-
Should fix the binary SwiftGodot package
0.31
This release brings support for Godot 4.2, along some nice Godot 4.2
features like Swift-method callables and hot reloading.
0.30
-
All methods that have default arguments in Godot, now have default
arguments in SwiftGodot - there are no longer any exceptions (Miguel) -
Fix the PropInfo that is generated for exported function parameters
and returns, to produce better live documentation in Godot (Estevan
Hernandez) -
Diagnostics: Assert in class initialization, to indicate that you
have not registered the class for use (@pcbeard, Miguel) -
GD.printDebug helper method that prints into the Godot debug window
the line and number of the error, similar to the function in
GDScript (Estevan) -
Locking of internal tables, to allow Swift/Godot objects to be
properly tracked in multi-threaded environments (Miguel)
0.29
Features:
- Update API to 4.1.3 (Mikhail Tishin)
- Major fix to overload methods, everyone is encouraged to adopt this version (Miguel) - details in 857e2f8
- Support Macros on Windows if you have Swift 5.9.1 (@matt)
- SwiftGodot now comes with a testsuite, using libgodot (Mikhail Tishin, Pádraig Ó Cinnéide)
- Crash on cast (@Airyzz)
- Fixes doc hosting for GitHub (Miguel)
- Fix generic parameters of mutable pointers in Variant init (#228) (Mikhail Tishin)
- Add fallback for builtin constants with missing plain constructors (#227) (Mikhail Tishin)
- Add reference count handling for Export macro (#230) (Mikhail Tishin)
- Fix memory leak of framework wrappers (#231) (Mikhail Tishin)
- Fixes inheritance when using
@Godot
macro (#234) (Pádraig Ó Cinnéide) - Fixes Callable with Variant parameter doesn't compile (#236) (Pádraig Ó Cinnéide)
- Use appropriate access control on classInitializer for final classes (#245) (Adam Campbell)
- Tidy up initializers (#239) (Pádraig Ó Cinnéide)
- Builds on iOS 15 and higher (Miguel)
- Use correct access modifier for implementedOverrides (#246) (Adam Campbell)
- Documentation improvements (@yannick)
- Add default type to
Variant.asObject
(#247) (Estevan Hernandez) - Fixes ObjectCollection initializer (Miguel de Icaza)
- Memory leak tests (Mikhail Tishin)
- Add ExpressibleByStringInterpolation conformance to StringName, NodePath and GString (#251) (Ulrik Damm)
- Small API touchups with @discardableResults
0.24
-
Test suite powered by libGodot (Mikhail Tishin, Pádraig Ó Cinnéide)
-
Major bug fix for virtual methods: all users are encouraged to
upgrade, we were previously registering all virtual methods as
implemented, but now only those that are actually implemented are
registered - this fixes a reported bug, but in reality was masking
many other bugs by Miguel de Icaza, [email protected] and Padraig
O Cinneide -
lookupObject now returns an optional, to avoid a crash when setting
an incorrect type in the editor (Airyzz) -
Build fixes by Mikhail Tishin
-
Updated the API to 4.1.3 (Mikhail Tishin)
-
Windows can now use Macros if available (Matt)
-
Documentation updates by Estevan Hernandez, Miguel de Icaza,
-
Fixes a long-standing memory leak in framework objects and adds
reference coutning in places it was not used before (Export macro)
(Mikhail Tishin) -
Improved the API for a few core types and fix generic parameters of
mutable pointers in Variant init (Mikhail Tishin)
0.23
Signal macro
Say goodbye to tedious and error prone boilerplate code. It is now
possible to trivially define signals emitte by Godot objects by using
the new #signal macro. Thanks to Pádraig Ó Cinnéide for his dedication
to this effort.
Improved Variant ergonomics
To accomplish the above signal support, Pádraig also upgraded the
Variant API, which is now a lot easier to use and with fewer special
APIs. Now rather than having type-aware initializer, you can just
create Variants from existing objects.
So you can now just do:
var myVector = Vector2 ()
var myVariant = Variant (myVector)
Convenience Vector operator APIs
Additional convenience operator overloads for vectors were contributed
by Matt [email protected].
Fixes to @export
More documentation
OptionSets now get their own documentation (me)
Make documentation reflect recent improvements to linker settings
(much simpler now) by Alex Loren and Signals (me).
Alex also contributed updates to the documentation on how to build on
Windows.
API
VariantCollection and ObjectCollection now work as Swift collections,
so it is possible to iterate over them with for
.
Mikhail Tishin did various updates to the generation of the API based
on the Json file that should assist writing additional tests,
extension and prepares us for a future where we support additional
modules.
New convenience APIs to register node paths by Marquis Kurt.
Export-ed properties now properly set the values of their backing
store. This issue was fixed by Airyzz [email protected]
after he spotted the bug.
Tests
We now have some tests for the type layouts, to catch errors in the
future, contributed by Mikhail Tishin.