Release notes
We’re continuing our focus on improving stability to the engine, especially ANR’s on Android.
And we have added a new major update with regards how to use uniform arrays.
The bob.jar build pipeline has also received a big performace boost.
E.g. it previously processed textures in a redundant manner.
BREAKING CHANGE in dmSDK!
Due to the changes with uniform arrays, we had to make some breaking changes to our DefoldSDK.
The changes are in our quite new parts of the SDK, and so we only really expect it to affect the extension-spine / extension-rive, which we have already updated to use the new sdk calls.
Uniform arrays
This sprint we’ve support for uniform arrays.
It allows you to set multiple values to the same uniform in your shader:
uniform lowp vec4 example[16];
To use it, we’ve added an options table to go.get()
/go.set()
, which allows you to specify the array index.
The index in Lua is 1-based, and in the shader it’s 0-based.
-- set the first vector4 in the array: example[0] = v
go.set(url, "example", vmath.vector4(1,1,1,1), {index=1})
-- set the last vector4 in the array: example[15] = v
go.set(url, "example", vmath.vector4(2,2,2,2), {index=16})
-- set an element of a vector4 in the array: example[0].x = 7
go.set(url, "example.x", 7, {index=1})
Note:
- We currently cannot set more than one value in the editor
- It only supports
vmath.vector4
resource.get_text_metrics
We’ve deprecated the label.get_text_metrics()
and gui.get_text_metrics()
in favor of the new
resource.get_text_metrics()
The benefit is that you don’t have to create an instance before figuring out the size of a text.
For gui, we’ve also added gui.get_font_resource(node)
in order to get the font handle.
local font = go.get("#label", "font") -- or gui.get_font_resource(node)
local metrics = resource.get_text_metrics(font, "The quick brown fox\n jumps over the lazy dog")
Engine
-
Issue-3692
- Added: Added support for uniform arrays -
Issue-5874
- Fixed: Bob: Avoid building of textures which are not used in components -
Issue-6092
- Fixed: Make string output consistent in userdata objects -
Issue-6093
- Fixed: Do not throwUnable to play animation
error, when changing texture for sprite -
Issue-6106
- Fixed: Fixed fallback when live update fails to load .dmanifest -
Issue-6116
- Fixed: Better responding to Audio Session Interruptions on iOS -
Issue-6117
- Fixed: Bob: Don’t calculate a cache key if the resource cache is disabled -
Issue-6119
- Fixed: Bob: Ignore the build cache for basic copy tasks -
Issue-6120
- Fixed: Bob: Improved the require parser to better handle trailing commands -
Issue-6132
- Fixed: Add resource.get_text_metrics() -
Issue-6136
- Fixed: Updated some of the API docs -
Issue-6147
- Fixed: Always release the mesh buffer resource -
Issue-6099
- Fixed: NE: Added dmGameObject::PostDDF, dmMessage::PostDDF helper functions -
Issue-6102
- Fixed: NE: Added dmScript::IsQuat and dmScript::IsMatrix4 -
Issue-6121
- Fixed: NE: Add dmScript::UrlToString to dmsdk for easier error reporting
Fixes for source code support when building locally
-
Issue-6091
- Fixed: Source: Target only x86_64-darwin until official M1 support -
Issue-6095
- Fixed: Source: Converted easy_install packages to pip packages