Natiny 0.11.0
Natiny now runs on Android, with Lua and Native bundles, multi-touch, screen rotation, and installable APKs.
Natiny 0.11.0 adds Android support for both Lua and Native projects. The release also brings multi-touch, screen orientation control, window states, and predictable nested render targets.
Natiny now runs on Android
The Android bundles support Vulkan devices running Android 7.0 or newer. Use
android-arm64 on most phones and tablets or android-amd64 in an x86_64
emulator. The Lua bundle includes a ready-to-install APK and a packer for your
own project. The Native SDK lets you build your own shared library and package
it into an APK.
Scripts and assets keep the same data/... paths as on desktop. Saved files go
to the app's private storage. Packaged apps start fullscreen, survive switching
away and back, and can use their own name, icon, orientation, version, and
signing key.
Follow the Lua Android guide or the Native Android guide to build and install an APK.
Multi-touch and rotation
Android and touch-enabled web builds now report all fingers in the current frame. Each touch has a stable identifier and exposes its pressed, held, and released state, position, and movement speed. The first finger is still reported as the left mouse button, so existing mouse controls continue to work.
On Android, set_orientation can lock the screen to portrait or landscape or
allow it to rotate. After a turn, the picture uses the new dimensions and is no
longer rotated or stretched incorrectly. See the
natiny.window.set_orientation and
natiny_window_set_orientation
references.
Control the window state
The new window state API switches between normal, minimized, maximized, and fullscreen modes. It also reports the state that is actually visible after the user minimizes a window or leaves fullscreen. Desktop supports all four states; web and Android support normal and fullscreen.
Render targets restore what was underneath
Previously, unbinding a surface could discard the targets below it and return straight to the window. It now returns to the previous surface or window and restores that target's camera, material, colours, coordinate system, and scissor state.
Surface colour and depth still persist between binds and frames. Clear them
explicitly when starting a new image. Camera and material bindings no longer
nest on their own: binding replaces the current value, and unbind means
“none.” Only target binds save and restore them. The
bind stack guide covers the exact rules.
Natiny 0.11.0 bundles and the Android APK are on the download page.