All posts
Releases

Natiny 0.10.0

The rendering API now has one accurate name, while Vulkan stretch windows reach their first frame and remain responsive.

Natiny 0.10.0

Natiny 0.10.0 gives the whole rendering API one name. The former draw module is now render, covering not only shapes and text but also render state, viewports, surfaces, and model submission. The release also fixes a Vulkan stall that could leave a stretch-scaled window empty and unresponsive.

The rendering API now says what it does

Rendering calls now live under natiny.render, and Native entry points begin with natiny_render_. The old draw name described calls such as circle, but it was a poor fit for state changes such as set_color, scissor regions, and viewports. render now names the complete job of the module.

The function signatures and the four NATINY_SORT_* constants are unchanged. Only the module and function prefixes move:

Lua
-- 0.9.0
natiny.draw.set_color(1, 1, 1, 1)
natiny.draw.circle(160, 120, 48)

-- 0.10.0
natiny.render.set_color(1, 1, 1, 1)
natiny.render.circle(160, 120, 48)

Existing projects need a mechanical rename

There is no compatibility alias. Lua projects must replace natiny.draw with natiny.render, and Native projects must replace every natiny_draw_* call with its natiny_render_* counterpart. Arguments and return behaviour stay the same, so no rendering logic needs to change.

Vulkan stretch windows render normally

A Vulkan window using NATINY_SCALE_MODE_STRETCH can now draw its first frame and continue processing events. Previously, rebinding an unchanged canvas could wait for the very frame that had not yet been submitted, leaving the window blank and preventing it from closing normally.

The fix requires no project changes. Direct3D 12, OpenGL, and Metal were not affected by this stall.

Natiny 0.10.0 bundles for every platform are on the download page.

More posts