BlueGit

golden-age paperdoll-renderer

Files

paperdoll-renderer / README.md

README.md

README.md 3.0 KiB Download Raw
1# Paperdoll Renderer
2
3Native Rust-projectbasis voor Tim Falkens Paperdoll Renderer. Het programma toont een statusvenster. Het importeert geen modellen en het rendert geen paperdolls. Het ontwerp, inclusief de letterlijke Nederlandse specificatie en de formaatmatrix voor OBJ+MTL+textures, FBX en glTF/GLB, staat in [`design.md`](design.md).
4
5## Eisen
6
7- Rust 1.96.0 (vastgezet in `rust-toolchain.toml`; hetzelfde image als de publieke posprint-pipeline, `rust:1.96-bookworm`)
8- Een X11-display voor het venster
9- Voor compileren: `pkg-config`, `libxcb1-dev`, `libx11-dev`, `libxkbcommon-dev`, `libxkbcommon-x11-dev`, `libgl1-mesa-dev`
10- Voor het venster zelf: `libxkbcommon-x11-0`, `libxcb1`, `libx11-6`, `libgl1`. Die laadt eframe pas bij het openen. Ontbreken ze, dan stopt het programma met een melding in plaats van een panic.
11
12## Lokaal
13
14```bash
15cargo test --locked
16cargo run -- --status
17cargo run
18```
19
20`--status` print de capability-lijst en opent geen venster. Een pad naar een model wordt geweigerd.
21
22## Testlichamen
23
24`tests/fixtures/bodies/` bevat twee procedurele GLB-bestanden, man en vrouw, elk met een skeleton en de clips `walk` en `attack`. Ze zijn CC0, duidelijk als testasset gelabeld, en geen definitieve karakters. Opnieuw maken:
25
26```bash
27python3 scripts/generate_test_bodies.py
28```
29
30`cargo test --locked` controleert of de bestanden leesbaar zijn, het skeleton en beide clips bevatten, en nog gelijk zijn aan de generator. Het venster laadt ze niet.
31
32## Wat deze build niet doet
33
34OBJ+MTL+textures, FBX, glTF/GLB, skeletanimatie, de 3D-attachmenteditor, paperdoll-render en de 2D-preview zijn niet gebouwd. Bestanden onder `tests/fixtures/`, als die er later bijkomen, worden door dit programma niet geladen.
35
36## BlueGit
37
38De pipeline staat in `blue-ci-cd.yml`. Tests draaien op merge requests en op pushes naar `master`, `main` en `CI_DEFAULT_BRANCH`. Op een tag-push, na geslaagde tests: AppImage, Ubuntu-pakket, Arch-pakket, Windows-zip, daarna een controle, daarna één release-aanroep.
39
40Die release-aanroep is de gedocumenteerde BlueGit-API (`POST /repos/$CI_PROJECT_PATH/releases`). Die API maakt de git-tag zelf. Bestaat de tag al, dan antwoordt de huidige BlueGit-code met HTTP 409. `replace: true` wordt op een tag-pipeline geweigerd (HTTP 403). Een tag-pipeline kan de eigen tag dus niet als release vullen. `scripts/ci/release.sh` doet de aanroep toch en faalt bij een niet-2xx-antwoord. Er is vanuit deze basis geen tag en geen release gestart.
41
42`timfa/legacy-cycles` heeft alleen publieke releases; het pipelinebestand was niet te lezen. De gebruikte YAML komt uit de BlueGit-CI-specificatie en uit de publieke pipelines van `timfa/posprint`, `timfa/minecart-trains` en `timfa/click-tween`.
43
44Pakketten lokaal, zonder publiceren:
45
46```bash
47bash scripts/package/deb.sh
48bash scripts/package/appimage.sh
49```
50
51Op deze machine zijn het `.deb`-pakket en de AppImage gebouwd. `paperdoll-renderer --status` via de AppImage geeft dezelfde status als de gewone binary. Het Arch-pakket heeft `makepkg` nodig en de Windows-zip de MinGW-crosscompiler; die twee builds zijn hier niet gedraaid.