Fizzy's examples become two repos that move with fizzy, and the app one grows a plain dvui app on fizzy's backend. That dvui app is the proof that the windowing work belongs in dvui (#243 ).
fizzyedit/example-app : fizzy as a library.
zig build run-fizzy -Dshape=minimal|studio|endless is a whole fizzy app in that shape.
zig build run-dvui will be dvui's own widgets on fizzy's backend: floats, menus and dialogs as OS windows, Liquid Glass on macOS.
fizzyedit/example-plugin : the smallest plugin, the template to copy.
Moving with fizzy.
Fizzy's CI builds both repos against each PR's own tree (scripts/check-examples.sh), fetched as a URL dependency would be.
An SDK release asks example-plugin to repin, as it asks the store plugins.
Steps
Both repos created, with the shapes, the hello plugin (now example-plugin) and the shader plugin (example-app's own).
build: fizzy builds when fetched as a URL dependency #279 : fizzy builds when fetched as a URL dependency. VERSION, app/ and web/ were missing from .paths.
examples: moved to fizzyedit/example-app and example-plugin #282 : fizzy's examples/ removed, with CI building the two repos instead (stacked on build: fizzy builds when fetched as a URL dependency #279 ).
example-app repinned from build: fizzy builds when fetched as a URL dependency #279 's commit to main once build: fizzy builds when fetched as a URL dependency #279 merges (replay: the replay app moves here; fizzy pinned at main with the cold-cache fix example-app#2 ), and again to main with the backend package and SDK 0.2.20 (build: pin fizzy at main with its backend package, SDK 0.2.20 example-app#3 ).
PLUGIN_DISPATCH_TOKEN scoped to example-plugin too, so the SDK release's repin request reaches it (a repo setting). At 0.2.20 every repin request, to the store plugins too, got HTTP 403: the token reaches none of them.
example-app follows fizzy main on its own: a workflow that repins it when fizzy releases.
backend: fizzy's native backend is a package of its own #312 : fizzy's backend as a package of its own (Windowing foundation: one model, decided once a frame, tested without a screen #243 's "On fizzy's side"): SDLBackend, GpuRenderer, platform/**, viewport_map, the SDL pin.
Popout's generic half moves into it: subwindows, dialogs and menus into OS windows, driven by dvui's drawRetained and screensSet (popout: dialogs drawn through dvui's drawRetained, not drawEarly #278 ).
backend: the viewports API is the backend package's, with a stand-in #324 : the viewports API is the package's, with a stand-in (viewports_none) for backends without OS windows; build: fizzy builds on dvui's SDL3 backend again, and CI keeps it #328 makes -Dnative-backend=sdl3 build again.
backend: viewports.Picture, fizzy.addDvui, the pointer over OS windows #326 : one way to draw a viewport's picture, viewports.Picture (stacked on backend: the viewports API is the backend package's, with a stand-in #324 ).
build: a dvui app of its own on fizzy's backend (fizzy.addDvui) #329 : fizzy.addDvui, a dvui app of its own on fizzy's backend or dvui's (stacked on backend: viewports.Picture, fizzy.addDvui, the pointer over OS windows #326 ).
popout: a demo's pointer shows over float, menu and dialog windows #330 : a demo's pointer shows over float, menu and dialog windows (stacked on backend: viewports.Picture, fizzy.addDvui, the pointer over OS windows #326 ).
core: floats' screens are dvui's (dvui.screensSet) #325 : fizzy adopts dvui.screensSet in place of core.screens' dvui-data plumbing.
example-app's run-dvui: a plain dvui app on that backend. Its floating windows are OS windows (dvui: run-dvui, dvui's demo and floating windows as OS windows example-app#4 , draft until build: a dvui app of its own on fizzy's backend (fizzy.addDvui) #329 lands); menus and dialogs later, once the app can say which subwindows are menus.
The two dvui changes proposed upstream (foxnne/dvui-dev branches window-draw-retained, screens-set), with run-dvui as the demonstration.
Fizzy's examples become two repos that move with fizzy, and the app one grows a plain dvui app on fizzy's backend. That dvui app is the proof that the windowing work belongs in dvui (#243).
zig build run-fizzy -Dshape=minimal|studio|endlessis a whole fizzy app in that shape.zig build run-dvuiwill be dvui's own widgets on fizzy's backend: floats, menus and dialogs as OS windows, Liquid Glass on macOS.Moving with fizzy.
scripts/check-examples.sh), fetched as a URL dependency would be.Steps
VERSION,app/andweb/were missing from.paths.examples/removed, with CI building the two repos instead (stacked on build: fizzy builds when fetched as a URL dependency #279).mainonce build: fizzy builds when fetched as a URL dependency #279 merges (replay: the replay app moves here; fizzy pinned at main with the cold-cache fix example-app#2), and again tomainwith the backend package and SDK 0.2.20 (build: pin fizzy at main with its backend package, SDK 0.2.20 example-app#3).PLUGIN_DISPATCH_TOKENscoped to example-plugin too, so the SDK release's repin request reaches it (a repo setting). At 0.2.20 every repin request, to the store plugins too, got HTTP 403: the token reaches none of them.mainon its own: a workflow that repins it when fizzy releases.SDLBackend,GpuRenderer,platform/**,viewport_map, the SDL pin.drawRetainedandscreensSet(popout: dialogs drawn through dvui's drawRetained, not drawEarly #278).viewportsAPI is the package's, with a stand-in (viewports_none) for backends without OS windows; build: fizzy builds on dvui's SDL3 backend again, and CI keeps it #328 makes-Dnative-backend=sdl3build again.viewports.Picture(stacked on backend: the viewports API is the backend package's, with a stand-in #324).fizzy.addDvui, a dvui app of its own on fizzy's backend or dvui's (stacked on backend: viewports.Picture, fizzy.addDvui, the pointer over OS windows #326).dvui.screensSetin place ofcore.screens' dvui-data plumbing.run-dvui: a plain dvui app on that backend. Its floating windows are OS windows (dvui: run-dvui, dvui's demo and floating windows as OS windows example-app#4, draft until build: a dvui app of its own on fizzy's backend (fizzy.addDvui) #329 lands); menus and dialogs later, once the app can say which subwindows are menus.foxnne/dvui-devbrancheswindow-draw-retained,screens-set), withrun-dvuias the demonstration.