66bedbb5f1d4e1a89c33b7a0a07995aaf32a15c0
Tahgibu 2.0.0
Editor de animación 2D ligero y nativo para Linux. C++ · C · Lua · raylib · CMake. Sin Python.
Estado actual: Etapa 1 (base)
Hecho y verificado:
- Sistema de compilación con CMake (C, C++, raylib; Lua solo se detecta).
- Núcleo sin dependencias gráficas (
source/core):Frame,Project, límite de 60 FPS, duración real por frame. Con pruebas automáticas. - Ventana de raylib con el reparto de zonas: menús, herramientas, canvas, propiedades, timeline.
- Registro de herramientas (
source/editor/Tool.hpp): la barra sale de una tabla.
Todavía no hace nada más que eso:
- Los menús se dibujan pero no abren nada.
- Las herramientas se pueden seleccionar (queda resaltada), pero no editan nada.
- La timeline es un esqueleto vacío (etapa 3).
Dependencias
Necesarias hoy: compilador C++17, CMake >= 3.16 y raylib >= 4.0.
| Distro | raylib |
|---|---|
| Arch | sudo pacman -S raylib |
| Fedora | sudo dnf install raylib-devel |
| Debian/Ubuntu | libraylib-dev si tu versión lo trae |
Si tu distro no la trae, dos opciones:
- Compilarla desde https://github.com/raysan5/raylib (en Debian/Ubuntu necesita
libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev libwayland-dev libxkbcommon-dev). - Dejar que CMake la descargue y compile:
cmake -S . -B build -DTAHGIBU_FETCH_RAYLIB=ON(requiere red ygit).
Lua (liblua5.4-dev en Debian/Ubuntu, lua en Arch, lua-devel en Fedora) no hace falta
hasta la etapa 10.
Compilar y ejecutar
cmake -S . -B build
cmake --build build
./build/tahgibu
Solo núcleo + pruebas, sin raylib:
cmake -S . -B build -DTAHGIBU_BUILD_APP=OFF
cmake --build build
ctest --test-dir build --output-on-failure
Estructura
source/
├── main.cpp
├── core/ modelo de datos (sin raylib): Frame, Project, constantes
├── editor/ estado del editor y registro de herramientas
└── ui/ ventana, layout y dibujo con raylib
tests/ pruebas del núcleo
Los .hpp viven junto a su .cpp; source/ es la raíz de includes
(#include "core/Project.hpp"). Las carpetas canvas/, timeline/, animation/,
project/, media/, export/ y lua/ se crean cuando llega su etapa.
Decisiones de diseño
- FPS por frame = override opcional. Un frame usa el FPS base del proyecto salvo que tenga FPS propios. Cambiar el FPS base afecta a los frames sin override.
- Límite 60 FPS aplicado en un único punto (
Frame::clampFps) para el base y para cada frame. - Mínimo 0.1 FPS (un frame puede durar hasta 10 s) para hacer pausas largas sin duplicar frames.
Se cambia en
core/Constants.hpp. - El FPS de la interfaz (60) es independiente del FPS de la animación.
Limitaciones conocidas
- El texto usa la fuente por defecto de raylib. Si las tildes salen como
?, hará falta cargar una fuente propia. - Esc no cierra la ventana (a propósito, para no perder trabajo); se cierra con el botón de la ventana.
Hoja de ruta
1 Base · 2 Editor · 3 Frames · 4 Sprites · 5 Fondos · 6 FPS · 7 Audio · 8 Vértices · 9 Proyecto · 10 Lua · 11 Exportación