GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - fizzyedit/example-app: Applications built on fizzy as a library

BranchesTags
Open more actions menu

Latest commit

 

History

9 Commits
9 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
dvui
dvui
 
 
plugins/shader
plugins/shader
 
 
replay
replay
 
 
shapes
shapes
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
build.zig
build.zig
 
 
build.zig.zon
build.zig.zon
 
 

Repository files navigation

example-app

Applications built on fizzy as a library, from outside fizzy.

zig build run-fizzy                  # the studio shape
zig build run-fizzy -Dshape=minimal
zig build run-fizzy -Dshape=endless
zig build run-fizzy -Dshape=studio -Dzon-layout=true

Each is a whole fizzy app: fizzy's frame, its built-in plugins (files, text, images, markdown), in a layout of this repo's own, with two more plugins bundled in. Each shape gets its own executable, window title and config directory (minimalapp, studioapp, endlessapp).

zig build run-replay is a plain dvui app, nothing of fizzy, with tape playback from the plugin SDK's replay (replay/main.zig). At launch it plays a live tape into its own window (clicks, typing, a command), draws the tape's pointer, stops if you click or type, and when the tape ends prints what is on screen as text: the names a test or an automation client reads instead of pixels. It depends only on the SDK package.

zig build run-dvui is a plain dvui app on fizzy's backend (dvui/main.zig): dvui's own widgets and its demo, and OS windows opened with dvui's own dvui.osWindow — nothing but dvui in the app's code. On fizzy's backend each is drawn from the one dvui.Window and looks as a dvui floating window does (its header and close button, no OS title bar); the OS moves it by its header, and it resizes from its edges. fizzy.addDvui gives the app dvui and the backend. -Ddvui-backend=sdl3 builds the same code on dvui's own SDL3 backend, where dvui.osWindow opens a dvui.Window of its own, as dvui does anywhere. Menus and dialogs as OS windows of their own come later.

Shapes

A shape is the app's layout: one file, ordinary code over fizzy's public Layout API. Fizzy does not configure shapes; you pick the closest one, copy it into your app and change it.

Shape File What it is
minimal shapes/minimal.zig One region, the workspace. Surfaces meant for a sidebar or panel have nowhere to go, and the same plugins run anyway.
studio shapes/studio.zig A large canvas, a short strip under it, the explorer on the right.
studio, as data shapes/studio.zon The same arrangement as a tree of places. A shape that needs a condition has to be the .zig one.
endless shapes/endless.zig One leftover place, split from its corner menu as often as you like.

A shape exports pub fn layout(ctx: ?*anyopaque, f: *Layout) !dvui.App.Result and imports only dvui, app, core and fizzy_sdk.

Plugins

  • hello, from fizzyedit/example-plugin: a plugin from its own repo, bundled in by URL as any third-party plugin would be.
  • shader (plugins/shader): this app's own plugin, drawing liquid metaballs that follow the pointer with its own GPU program (core.programs). It also builds alone as a dylib (cd plugins/shader && zig build).

build.zig hands both to fizzy with fizzy.buildApp, in one list with the fizzy plugins the app links (fizzy.plugins.text, or fizzy.plugins.all), and every one is linked in and registered the same way. The minimal shape links only workbench and text; the others link all of fizzy's. workbench is required for now.

Your own app

build.zig is the whole recipe: depend on fizzy (build.zig.zon), call b.dependency("fizzy", …) with your app's name, display name, bundle id, .@"defer-app" = true and your shape as app-layout, then fizzy.buildApp with every plugin you link, fizzy's among them. Pin fizzy by commit, as this repo does.

About

Applications built on fizzy as a library

Resources

Readme
MIT license
Activity
Custom properties

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.