Defold 1.6.3
Summary
- NEW: (#8225) Detect renderable float and half float texture formats on OpenGL ES 2.0 / WebGL 1.0 devices
-
NEW: (#8227) Exclude headless dmengine from
bob.jar
-
NEW: (#8267) Fix small memory leak in
json.decode()
- NEW: (#8289) Print generic error when OpenGL shader compilation or program linking fails
- NEW: (#8270) Improve memory usage in large projects
- FIX: (#8247) Wrap glfw calls in dmPlatform library
- FIX: (#8244) Add support for luminance_alpha in image.load
- FIX: (#8242) Use the WebGL 1.0 specific constant for the half float format.
- FIX: (#8260) Set HTML5 AudioContext sample rate to 44100
- FIX: (#8295) Fix rare multipage atlas issue with compressed textures (HTML5).
- FIX: (#8299) Fixed triggers and back button for controllers on macOS
- FIX: (#8283) Fix “Optimization pass failed” issue
- FIX: (#8283) Fix issue when usage of semicolons in Lua may break compilation.
- FIX: (#8345) Model multi material doesn’t respect the sampler names
Engine
NEW: (#8225) Detect renderable float and half float texture formats on OpenGL ES 2.0 / WebGL 1.0 devices
Adds the ability to render to 16-bit and 32-bit floating-point color buffers on OpenGL ES 2.0 and WebGL 1.0 if the device supports them. The support depends on the extensions EXT_color_buffer_half_float
and WEBGL_color_buffer_float
.
Closes Webgl 1 support for float render targets · Issue #8172 · defold/defold · GitHub
NEW: (#8227) Exclude headless dmengine from bob.jar
Now “vanilla” dmengine_headless
(headless dmengine binary without native extensions) will be downloaded from the server if needed. It’s rarely used, but was shipped with each bob.jar
for all the platforms.
NEW: (#8267) Fix small memory leak in json.decode()
Each json.decode()
call allocates 1kb of memory, which should be freed after.
NEW: (#8289) Print generic error when OpenGL shader compilation or program linking fails
Adds generic error message when OpenGL shader compilation or program linking fails. Previously, the shader error message was only printed if the GPU driver provided it. Depending on the implementation, the driver may not do this and so the developer would not get any message and could not understand why the game crashed.
Also for OpenGL program linking the warning is replaced by an error, because after this failure the game cannot continue to work.
Closes #8287
FIX: (#8247) Wrap glfw calls in dmPlatform library
We have added a new engine platform library, which is the first step into upgrading and simplifying our GLFW library.
Migration plan:
- fix console to support the new changes
- remove building glfw in the engine
- migrate desktop platforms to use vanilla glfw3
- move our web and mobile code from glfw into their own implementations within the engine
- remove the custom glfw 2.7 implementation from the engine
FIX: (#8244) Add support for luminance_alpha in image.load
Moved internal dmImage functionality into the dmsdk for loading images from binary data. The API looks like this:
namespace dmImage
{
Result Load(const void* buffer, uint32_t buffer_size, bool premult, HImage image);
void Free(HImage image);
Type GetType(HImage image);
uint32_t GetWidth(HImage image);
uint32_t GetHeight(HImage image);
const void* GetData(HImage image);
}
NOTE: that this also changes the API for the script image.load
function since we now will return image.TYPE_LUMINANCE_ALPHA
for PNGs with both grayscale and alpha channels. This is considered a bugfix so please be aware of this if you are using that function!
FIX: (#8242) Use the WebGL 1.0 specific constant for the half float format.
WebGL 1.0 supports loading half float textures. But it requires the use of HALF_FLOAT_OES constant, which has a different value from the HALF_FLOAT constant from WebGL 2.0 / OpenGL ES 3.0. This fix enables to use half float texture format on WebGL 1.0 devices.
FIX: (#8260) Set HTML5 AudioContext sample rate to 44100
HTML5 AudioContext sample rate wasn’t specified and varied depending on the output device and it could be default 44100, or it could be 8000, 16000, 22050, 32000, 48000 etc. If the sample rate of the device was less than the sample rate of your sounds, they would not be played at all. So the AudioContext is now created with sampleRate = 44100.
FIX: (#8295) Fix rare multipage atlas issue with compressed textures (HTML5).
Some old devices don’t work with multipage atlases if texture transcoded to ASTC format. For such devices, ASTC will be marked as non-supported format and the next best fits will be used (most of the time it will be ETC2).
FIX: (#8299) Fixed triggers and back button for controllers on macOS
Fixed an issue when triggers and back button on macOS weren’t caught by the gamepads input system.
FIX: (#8299) Fix issue when usage of semicolons in Lua may break compilation
Fixed an issue when our Lua parser removes semicolons which shouldn’t be removed, which breaks Lua compilation.
FIX: (#8345) Fix issue when usage of semicolons in Lua may break compilation
In some cases, a model with multiple textures would get them assigned to incorrect texture units.
Editor
NEW: (#8270) Improve memory usage in large projects
- Improved memory usage in large projects.
- We now report resources that fail to build due to an out-of-memory error to the Build Errors tab.
FIX: (#8283) Fix “Optimization pass failed” issue
Make sure pipeline tools use DLLs from jdk/bin
folder to prevent Optimization pass failed:
error on windows.
Update 2024-01-12:
Fixes for
- Sprite material batch fix
- Material texture sampler fix
- Gui ShowKeyboard fix
- Sprite missing animation fix
Update 2024-01-15:
Fixes for:
- Fix for calculating size of sprite vertex buffer data
- Workaround check if texture set doesn’t have any image name hashes
- Fix for slice 9 sprites with rotated uvs
- Fix for building atlasbuilder test main function
- Fixed erroneous duplication errors on animation groups