BlueGit

golden-age paperdoll-renderer

Overview

Activity

NovDecJanFebMarAprMayJunJulAugSepOctNov

225 contributions in the last 12 months

LessMore

Commits, merge requests and comments.

paperdoll-renderer
Passed 00:00:49
Stage: test
11eefbcf History
README.md

Paperdoll Renderer

Native Rust-schil voor Tim Falkens Paperdoll Renderer. Het venster bewaart een projectmap met één character.ppd en leest glTF/GLB (mesh, materialen, textures, skeleton en alle animatieclips) plus OBJ+MTL als statische equipment. FBX wordt herkend en geweigerd: Assimp is niet gekoppeld. Er is geen 3D-beeld en geen paperdoll-render. 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 modelpad op de opdrachtregel wordt geweigerd. In het venster vullen Nieuw, Open en Opslaan een projectmap. Kies daarna bestanden in die map; de opgeslagen paden blijven relatief.

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 het release-script.

Dat script publiceert niet. De publieke BlueGit-routes kunnen artifacts niet aan een bestaande tag of release hangen. POST /api/v1/repos/{owner}/{repo}/releases maakt de tag zelf (HTTP 409 als die er al is). replace: true is op een tag-pipeline HTTP 403. scripts/ci/release.sh doet geen van beide en stopt met exit 3 (release-blocked: no-attach-endpoint). De volgorde blijft een tag-push. De ontbrekende serverroute staat in design.md. Er is 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.