Skip to content

Releases: migueldeicaza/SwiftGodot

0.35.0

12 Dec 17:20
Compare
Choose a tag to compare
  • 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)

10 Dec 15:51
1d002ef
Compare
Choose a tag to compare

0.34: update macro and tests to include .array usage flag (#284)

10 Dec 01:12
1d002ef
Compare
Choose a tag to compare

0.33: Embrace new LosslessStringConvertible in NodePath, GString and String…

09 Dec 23:55
Compare
Choose a tag to compare
  • 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 mgshorter@gmail.com 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)

07 Dec 21:43
758c90f
Compare
Choose a tag to compare
  • 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

02 Dec 17:32
Compare
Choose a tag to compare

This release brings support for Godot 4.2, along some nice Godot 4.2
features like Swift-method callables and hot reloading.

0.30

02 Dec 16:48
Compare
Choose a tag to compare
  • 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

29 Nov 00:12
Compare
Choose a tag to compare

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

14 Nov 18:01
92e1453
Compare
Choose a tag to compare
  • 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, mgshorter@gmail.com 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

01 Nov 19:06
Compare
Choose a tag to compare

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 mgshorter@gmail.com.

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 36567925+Airyzz@users.noreply.github.com
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.