BlueGit

golden-age paperdoll-renderer

Overview

Activity

NovDecJanFebMarAprMayJunJulAugSepOctNov

225 contributions in the last 12 months

LessMore

Commits, merge requests and comments.

paperdoll-renderer
README.md

Paperdoll Renderer

Native 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.

Eisen

  • Rust 1.96.0 (vastgezet in rust-toolchain.toml; hetzelfde image als de publieke posprint-pipeline, rust:1.96-bookworm)
  • Een X11-display voor het venster
  • Voor compileren: pkg-config, libxcb1-dev, libx11-dev, libxkbcommon-dev, libxkbcommon-x11-dev, libgl1-mesa-dev
  • 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.

Lokaal

cargo test --locked
cargo run -- --status
cargo run

--status print de capability-lijst en opent geen venster. Een pad naar een model wordt geweigerd.

Testlichamen

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:

python3 scripts/generate_test_bodies.py

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.

Wat deze build niet doet

OBJ+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.

BlueGit

De 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.

Die 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.

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.

Pakketten lokaal, zonder publiceren:

bash scripts/package/deb.sh
bash scripts/package/appimage.sh

Op 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.