feat(notifier): infrastructura del sistema de notificacions toast
- Notifier singleton (System::init/get/destroy) que dibuixa un cuadre
centrat al centre-superior amb fons semitransparent (derivat oscur del
color del text) i bordes en línies.
- Màquina d'estats HIDDEN → ENTERING → HOLDING → EXITING amb easing
outCubic (entrada) i inCubic (sortida), slide de 300 ms.
- pushRect() afegit a GpuFrameRenderer (2 triangles, edge_dist=0) per
poder pintar el fons opac/semitransparent reutilitzant el pipeline de
línies — sense afegir cap pipeline nou.
- VectorText::render/renderCentered admeten color RGBA explícit
(default {0,0,0,0} preserva el comportament previ amb oscil·lador
global de color).
- Easing header-only a core/utils/easing.hpp (outCubic, inCubic).
- Director crea Notifier just després del DebugOverlay i el draweja com
a última capa per damunt de l'escena i el debug.
Encara cap consumer el crida; els F1-F5 i la doble pulsació d'ESC
arriben en commits posteriors.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
// easing.hpp - Funciones d'interpolació suaus (header-only)
|
||||
// © 2026 JailDesigner
|
||||
//
|
||||
// Conjunt mínim de funcions easing per a animacions d'UI. Totes prenen un
|
||||
// paràmetre normalitzat t ∈ [0,1] i retornen un valor ∈ [0,1].
|
||||
|
||||
#pragma once
|
||||
|
||||
namespace Utils::Easing {
|
||||
|
||||
// outCubic: ràpid al principi, suau cap al final. Útil per a entrades de
|
||||
// notificacions (slide-in: arrenc d'impacte i frenada cuidada).
|
||||
constexpr auto outCubic(float t) -> float {
|
||||
const float INV = 1.0F - t;
|
||||
return 1.0F - (INV * INV * INV);
|
||||
}
|
||||
|
||||
// inCubic: arranca suau, accelera cap al final. Útil per a sortides
|
||||
// (slide-out: comença discretament i desapareix ràpid).
|
||||
constexpr auto inCubic(float t) -> float {
|
||||
return t * t * t;
|
||||
}
|
||||
|
||||
} // namespace Utils::Easing
|
||||
Reference in New Issue
Block a user