Preparando la interfaz
This commit is contained in:
commit
66bedbb5f1
17 files changed
+876
No files matched your search
@@ -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
|
||||
Reference in new issue
Block a user