Defold 1.4.7 Beta

Defold 1.4.7

Summary

  • NEW: (#7714) Add leading, tracking and line_break properties for label component.
  • NEW: (#7669) Sprite animation frame count
  • NEW: (#7642) Use :textual? flag for Search in Files
  • NEW: (#7686) Implement Goto Definition using LSP
  • NEW: (#7692) Implement Find References
  • NEW: (#7673) Install and launch APKs after the Android bundle
  • FIX: (#7625) Cubemap + WebGL float type fixes
  • FIX: (#7674) Check if the handle is correct when calling timer.get_info
  • FIX: (#7637) Added support for cyclic detection when serializing a table
  • FIX: (#7657) Fix uploading basis compressed texture array data
  • FIX: (#7659) Spir-V pipeline improvements
  • FIX: (#7660) Check uniform buffer limits when creating vulkan shaders
  • FIX: (#7670) Fix issue with components counter in some cases
  • FIX: (#6912) Added engine support for arm64 macOS
  • FIX: (#7734) Fix broken Evaluate Lua funtionality in Lua Debugger

Engine

NEW: (#7714) Add leading, tracking and line_break properties for label component.
Now it is possible to get/set leading, tracking and line_breakproperties for a label component:

local leading = go.get("#label", "leading")
leading = leading * 1.2
go.set("#label", "leading", leading)
go.animate("#label", "leading", go.PLAYBACK_LOOP_PINGPONG, 2, go.EASING_INSINE, 2)

local tracking = go.get("#label", "tracking")
tracking = tracking * 1.2
go.set("#label", "tracking", tracking)
go.animate("#label", "tracking", go.PLAYBACK_LOOP_PINGPONG, 2, go.EASING_INSINE, 2)

local line_break = go.get("#label", "line_break")
go.set("#label", "line_break", false)

NEW: (#7669) Sprite animation frame count
Added the new property frame_count to sprite components to get the current running animations frame count:
go.get("#sprite", "frame_count")

Note that if you play a flipbook animation via sprite.play_flipbook, it will not be played until the next frame so retrieving the frame count at this time will get the value of the old animation that was previously playing.

FIX: (#7625) Cubemap + WebGL float type fixes
Fixed several issues with creating cubemap textures with float types. Creating cubemaps from scripts now also works correctly for all graphics adapters.

FIX: (#7674) Check if the handle is correct when calling timer.get_info
A bug fix for calling timer.get_info with a handle to a cancelled timer.

FIX: (#7637) Added support for cyclic detection when serializing a table

FIX: (#7657) Fix uploading basis compressed texture array data
Fixed an issue with uploading basis compressed textures to a texture array, which is primarily used for paged atlases in the engine.

FIX: (#7659) Spir-V pipeline improvements
Improved the SPIR-V shader pipeline:

  • Better error feedback when shader inputs and outputs mismatch during the build process
  • Removed redundancy when producing shader resource bindings since we now run optimisation passes on the SPIR-V source
  • Output name hashes for shader bindings instead of doing it in runtime

FIX: (#7660) Check uniform buffer limits when creating vulkan shaders
When a shader exceeds the number of texture samplers and uniform buffers on the Vulkan adapter we show a bit more helpful error message instead of crashing the engine.

FIX: (#7670) Fix issue with components counter in some cases
Fix the issue that occurs when there are multiple instances of the same object containing a factory, which causes the component counter to break.

FIX: (#6912) Added engine support for arm64 macOS
Bob.jar will now accept arm64-macos as an architecture. By default, it will generate both x86_64-macos and x86_64-macos.
Bob.jar can now also be run under an arm64 terminal and use corresponding arm binaries.
The editor macOS bundle dialog has also been updated to support dual architectures.
There is still work left to do

  • The editor itself still is an x86_64 executable
  • Build’n’run still uses the x86_64 macOS engine

FIX: (#7734) Fix broken Evaluate Lua functionality in Lua Debugger
Fix issue when Lua Debugger hangs after using Evaluate Lua functionality.

Editor

NEW: (#7642) Use :textual? flag for Search in Files
Technical note: we now look at :textual? flag of a resource type to determine if a resource without save data might be textual.

We no longer search through .glb files when performing Search in Files.

NEW: (#7686) Implement Goto Definition using LSP
editor now uses running LSP servers for going to definitions of code files. The action is bound to F12 shortcut. You need Lua language server running by the editor for this feature to work.

NEW: (#7692) Implement Find References
UX note: I thought that showing a notification with a button to read more about LSPs is better than showing a greyed-out menu item with no clarification, so I decided to always make the LSP actions active.

The editor now supports finding references using LSP, with the command assigned to a Shift F12 shortcut. The Go to Definition and Find References commands are more discoverable now — we show them in the Edit menu bar. We now also point the user toward the LSP post on the forum in case they try to use these commands without a language server dependency.

NEW: (#7673) Install and launch APKs after the Android bundle

28 Likes

This should be a real time saver!

2 Likes

The “Basic 3D” project template built for HTML5 doesn’t run on 1.4.7 BETA:

3 Likes

This is useful to me as a new dev. Thank you! I wasn’t aware of this LSP extension and didn’t pay these options any attention. Was using VSCode for code editing which felt off. A right-click context menu in the code editor with features like this would make it more discoverable to new users. A line and column number in the status bar for the code editor would be helpful too.

3 Likes

Thanks, we’ll look into it!

1 Like

Anything built for Android seems to crash at startup, i.e. defold-input crashes on a Pixel 2 XL (Android 11) and a Xiaomi MI 9 (Android 10) with Defold 6486a45f177a257f42f9edfc27932e20c907e3f8

(edit) In fact iOS crashes too, on iPhone 13 mini. Defold 1.4.6 works fine.

Relevant logcat output:
…/src/graphics.cpp:282: ShaderDesc::Shader *dmGraphics::GetShaderProgram(dmGraphics::HContext, dmGraphics::ShaderDesc *): assertion “selected_shader” failed

1 Like

We have identified the issue and a fix is on the way. It was related to the arm64 changes in our build system. I’ll let everyone know when a new beta is available, thanks for the reports!

8 Likes

There should be a new beta out now with a fix for this issue!

3 Likes

Thanks, confirm fixed on iOS and Android.

3 Likes