Repository navigation
build: a dvui app of its own on fizzy's backend (fizzy.addDvui) - #329
Merged
Merged
Conversation
`fizzy.addDvui(fizzy_dep, root_module, .fizzy | .sdl3)` gives a plain dvui app dvui, its backend and `viewports_none`. Two things only such an app hit are fixed with it: the main window's drawable was acquired with the uploads' copy pass still open, and platform's menu exports went unemitted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 10, 2026
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.
Part of #281: what example-app's
run-dvuibuilds on. Stacked on #326 (on #324); review those first. The example-app side is fizzyedit/example-app#4.fizzy.addDvui(fizzy_dep, root_module, backend)gives an outside app's module dvui on one of two backends:.fizzy: fizzy's own, where each floating window can be an OS window of its own;.sdl3: dvui's own SDL3 backend, which has the main window only.The module gets
dvui(fizzy's pin), itsbackend, andviewports_none(#324), so the same app code builds on either:On fizzy's backend it also gets
platform, and on macOS the backend's Objective-C compiled into it.build/exe.zig's backend switch is nownativeDvui, shared by fizzy's own executable andaddDvui.Two fixes a plain dvui app needed
GpuRenderer.acquireSwapchain). The frame's texture uploads had left it open, and SDL asserted on every frame ("Cannot acquire a swapchain texture during a pass"). Fizzy never hit this because it draws its frame into a target first. Any dvui app draws straight into the window. The fix ends the copy pass before acquiring, aspresentIntoandclearPassalready do.platform's menu-bar exports weren't emitted (FizzyMenu*).macos/menu_target.mcalls them and is compiled into every macOS app on the backend, but Zig emits anexport fnonly when analysis reaches its file. Fizzy reachesplatform/menu.zigthrough its menu bar; a dvui app with none failed to link. Nowplatform/root.zigreferences them, and they'repub.Verification
zig build,test(514/515, 1 skipped),test-integration(358/358),check-web,test-sdk-version, the backend's tests (46/46), and the Windows and Linux cross-builds pass on macOS. The soak tape ends in a passing verdict (1,429 viewport presents, no leaks, nothing logged as an error).run-dvui, built against this branch, on macOS:-Ddvui-backend=sdl3: the same app shows only its main window, with the floating windows in it. No warnings.🤖 Generated with Claude Code