Experimental MoonBit-native CPU raster stack for MoUI
Dependencies
wzzc-dev/
├── moon.mod # Root module
├── moon.work # Workspace configuration
│
├── graphics/ # 2D graphics rendering
│ ├── moon.mod
│ ├── color.mbt # RGBA color
│ ├── path.mbt # Vector path
│ ├── paint.mbt # Paint configuration
│ ├── pixmap.mbt # Pixel buffer
│ ├── layer.mbt # Off-screen layer cache
│ ├── layer_tree.mbt # Z-ordered cached layer composition
│ ├── render_frame.mbt # Frame canvas + layer tree submit unit
│ ├── rasterizer.mbt # Scanline rasterizer
│ └── canvas.mbt # Drawing canvas
│
├── text/ # Text processing
│ ├── moon.mod
│ ├── reader.mbt # Binary reader
│ ├── tables.mbt # TTF tables
│ ├── parser.mbt # TTF parser
│ ├── font.mbt # Font data
│ ├── glyph.mbt # Glyph representation
│ ├── shaper.mbt # Text shaping
│ ├── layout.mbt # Layout engine
│ ├── rasterizer.mbt # Glyph rasterizer
│ ├── renderer.mbt # Font renderer
│ └── file_io.mbt # File I/O (uses moonbitlang/x/fs)
│
├── renderer/ # Graphics + text integration
│ ├── moon.mod
│ ├── renderer.mbt # Renderer core and text mask composition
│ └── renderer_test.mbt
│
├── softbuffer/ # Pixel display
│ ├── moon.mod
│ ├── ffi.mbt # FFI bindings
│ ├── surface.mbt # graphics.Surface native present targets
│ ├── native_renderer.h # Native present declarations
│ └── native_renderer.c # Win32 present implementation and non-Windows stubs
│
└── examples/
├── headless_render/ # MemorySurface off-screen render smoke test
│ ├── moon.mod
│ ├── moon.pkg
│ └── main.mbt
├── render_bench/ # Deterministic CPU render microbenchmark smoke
│ ├── moon.mod
│ ├── moon.pkg
│ └── main.mbt
├── hello_world/ # RenderFrame + LayerTree window demo
│ ├── moon.mod
│ ├── moon.pkg
│ └── main.mbt
├── font_demo/ # Font rendering demo
│ ├── moon.mod
│ ├── moon.pkg
│ └── main.mbt
└── triangle_window/ # Triangle rendering demo
├── moon.mod
├── moon.pkg
└── main.mbt# 1. Open VS Developer PowerShell
& "C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
# 2. Then validate the native softbuffer package
moon test softbuffer@echo off
call "C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
moon test softbuffer$env:PATH = "C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC\14.51.36231\bin\Hostx64\x64;$env:PATH"
$env:INCLUDE = "C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC\14.51.36231\include;C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\shared;C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\um"
$env:LIB = "C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC\14.51.36231\lib\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\um\x64"
moon test softbuffer# Check all packages
moon check
# Run the local validation gate
scripts/check_ci.sh
# Run deterministic render microbenchmark smoke workload
moon run examples/render_bench
# Run renderer package tests directly
moon test graphics
moon test text
moon test renderer
moon test softbuffer
# Build native GUI examples (current packages are macOS window examples)
moon build examples/hello_world --target native
moon build examples/font_demo --target native
moon build examples/triangle_window --target native
# Run headless rendering smoke test
moon run examples/headless_render
# Manual GUI smoke tests; these open windows and run until closed
moon run examples/hello_world --target native
moon run examples/font_demo --target native
moon run examples/triangle_window --target native┌─────────────────────────────────────────────────────────────┐
│ Application │
│ (examples/font_demo) │
└───────────────────────────┬─────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ graphics │ │ text │ │ softbuffer │
│ (渲染图形) │ │ (解析字体) │ │ (显示到屏幕) │
└───────┬───────┘ └───────┬───────┘ └───────────────┘
│ │
└─────────┬─────────┘
▼
┌───────────────┐
│ renderer │
│ (组合渲染管线) │
└───────────────┘Experimental MoonBit-native CPU raster stack for MoUI
Dependencies