Repository navigation
Add Rust-drawn pixel surfaces and Rust-built tray icons (stage 34) - #17
Merged
Marc-André Moreau (mamoreau-devolutions) merged 2 commits intoOct 30, 2026
Conversation
IAvnApplication7 is a new, separately versioned capability; published vtables are unchanged and older hosts answer E_NOINTERFACE. - Pixel surfaces (IAvnPixelSurface, IAvnPixelSurfaceHandler): a control that draws up to 8 bitmap layers Rust fills (premultiplied RGBA or BGRA, placed at a rectangle or over the whole control) and reports the raw pointer stream, keys, text and resizes to a Rust closure. Safe API in rustolonia::pixel_surface; examples/pixel_surface.rs paints with it. - Tray icons whose menu Rust builds (IAvnShellTray, IAvnShellTrayHandler): rustolonia::ShellTray, for code-first applications on the prebuilt host, which have no schema compiled into it. - Docs: COMPATIBILITY.md, the crate READMEs (including copying the host next to an application's executable from its build script). - prepare-release.ps1 skips in-repository lock files that do not use rustolonia. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Marc-André Moreau (mamoreau-devolutions)
merged commit Oct 30, 2026
90884b7
into
master
10 checks passed
Marc-André Moreau (mamoreau-devolutions)
deleted the
claude/stage34-pixel-surfaces-tray
branch
October 30, 2026 11:25
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two things the code-first API could not do, which an image editor or a capture tool needs: put pixels Rust produced on screen while getting the raw pointer stream, and show a tray icon without a view-model schema compiled into the host. Jiffshot (a screen capture tool and editor) is built entirely on these, with no AXAML or C#.
What's in it
IAvnApplication7(stage 34), a separately versioned capability. Published vtables are unchanged; older hosts answerE_NOINTERFACE.IAvnPixelSurface, Rust-implementedIAvnPixelSurfaceHandler):rustolonia::pixel_surface(PixelSurface,SurfaceInput,AppContext::create_pixel_surface), andexamples/pixel_surface.rs, a small paint program.IAvnShellTray,IAvnShellTrayHandler):rustolonia::ShellTraywithTrayMenuItem(commands, check boxes, separators, submenus) andAppContext::create_tray. Icons are released whenRunends, like stage 33's.rust/COMPATIBILITY.md,rust/rustolonia/README.md.rust/prepare-release.ps1: skips in-repository lock files that do not use rustolonia (an app with more than one workspace).Testing
rustolonia-sysunit tests: 49 passed, including vtable slot counts and both Rust-implemented handlers.rustoloniaunit tests: 63 passed;cargo check --examplesclean; the module's doc example compiles.rustolonia-sysnativeaot_fixture: 12 passed, including the new capability against a locally published host. Bitmaps need the platformRuninitializes, so beforeRunthe fixture checks argument validation and the calls that don't render.Notes for review
rust/COMPATIBILITY.mdit belongs in a release that bumps all three crates. No version is bumped here. Jiffshot needs that release to build outside this repository on the prebuilt host.header_textwraps aTextBlock;AccessTextisn't projected); file-drop events carry no position; Rust can't start a drag; no "frame rendered" notification; a window's decoration theme can't be set.🤖 Generated with Claude Code