renderer2D.destroy() dans cleanup() supprimait les programs GL AVANT
que JME ait rendu un frame. Collision d’IDs GL -> shader cache invalide
-> geometrie invisible (fond bleu visible mais rien d’autre).
Fix : app.enqueue(() -> { r2d.destroy(); return null; }) dans les deux
menu AppStates. La destruction se produit apres que JME ait rendu un frame
propre avec ses propres shaders correctement lies.