<feed xmlns='http://www.w3.org/2005/Atom'>
<title>video/utils/plymouth-plugin-ucode/src, branch master</title>
<subtitle>Mirror of video feed</subtitle>
<id>https://git.openwrt.org/feed/video/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/feed/video/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/'/>
<updated>2026-10-02T07:56:57Z</updated>
<entry>
<title>plymouth-plugin-ucode: honour the display device scale</title>
<updated>2026-10-02T07:56:57Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-10-01T11:41:24Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/commit/?id=fd188acfb623ffa74918da1a458ffd1fc9125d76'/>
<id>urn:sha1:fd188acfb623ffa74918da1a458ffd1fc9125d76</id>
<content type='text'>
ply_pixel_buffer_get_size() reports the logical area while
ply_pixel_buffer_get_argb32_data() points at the device pixel buffer.
Where the device scale is above one, the plutovg surface then describes
the buffer as too narrow and with too short a stride, so each odd
logical row lands in the right half of the panel and the image collapses
into a fraction of it. The damaged area is handed over in logical
coordinates as well, while ply_renderer_head_flush_area() reads it as
device pixels.

Size the surface in device pixels, scale the canvas by the device scale
so a theme keeps drawing in logical coordinates, and report the damaged
area in device pixels.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>plymouth-plugin-ucode: add a scripted splash plugin for ucode</title>
<updated>2026-09-26T09:21:06Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-09-25T23:44:28Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/commit/?id=9ef83aa136c2a9327c0bf4960f958f2a4d24d4b5'/>
<id>urn:sha1:9ef83aa136c2a9327c0bf4960f958f2a4d24d4b5</id>
<content type='text'>
Plymouth's own script plugin has its own little language and draws by
compositing prepared images, which means a theme arrives as a few
hundred PNGs. This plugin makes a theme one ucode program instead, with
a plutovg canvas over plymouth's pixel buffer, so a theme is source and
its artwork is SVG.

A theme returns setup, frame, paint and event. frame advances state and
declares what changed, paint draws one damaged rectangle, and nothing
reaches the screen that the theme did not ask for, which keeps a busy
scene at a couple of milliseconds a frame rather than repainting
everything. Themes are written against the contract in files/README.md
and can be measured offscreen, on any target, with the included
plymouth-theme-bench, which reports the package version it was built
from.

The plugin connects to ubus and passes events through, along with the
objects that already existed when it connected, so a theme can show
what the system is actually doing rather than animating a guess. It
starts the splash from a preinit hook, before the overlay is mounted,
and keeps it up through sysupgrade.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
</feed>
