compose-desktop-video-no-swingpanel

Installation
SKILL.md

Compose Desktop video without an embedded panel

Most native media engines expose a software render path: you hand it a pixel buffer and a size, it decodes, scales and letterboxes a frame into that buffer, and you copy it out. The obvious way to show the result in Compose Desktop is to blit it onto an AWT/Swing component and embed that. Do not. Publish finished frames as immutable images on a StateFlow and draw them with a plain Image; the engine side is identical and the whole embedding bug class disappears.

Why the embedded-panel route fails

Three separate failures, all structural rather than fixable:

  • A heavyweight embedded component is an overlay: it draws above every Compose node regardless of z-order, so nothing can be placed on top of the video.
  • It repositions one frame late while the page scrolls — visible as a flicker that exposes whatever is behind the window, and worse on a transparent window.
  • The toolkit gives a component exactly one parent: two screens composing the player fight over the single instance, and the loser renders black until next/previous — the "video randomly missing" report.
Installs
2
GitHub Stars
35
First Seen
6 days ago
compose-desktop-video-no-swingpanel — maxrave-dev/kotlin-footguns