Preparando la interfaz

This commit is contained in:
Clinv committed 2026-09-29 23:35:03 -03:00
commit 66bedbb5f1
17 files changed
+876

No files matched your search

+92
View File
@@ -0,0 +1,92 @@
# 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:
1. 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`).
2. Dejar que CMake la descargue y compile: `cmake -S . -B build -DTAHGIBU_FETCH_RAYLIB=ON`
(requiere red y `git`).
Lua (`liblua5.4-dev` en Debian/Ubuntu, `lua` en Arch, `lua-devel` en Fedora) no hace falta
hasta la etapa 10.
## Compilar y ejecutar
```bash
cmake -S . -B build
cmake --build build
./build/tahgibu
```
Solo núcleo + pruebas, sin raylib:
```bash
cmake -S . -B build -DTAHGIBU_BUILD_APP=OFF
cmake --build build
ctest --test-dir build --output-on-failure
```
## Estructura
```text
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