Skip to content

Le scroll de fond s'applique aux presets non périodiques qui animent déjà leur propre mouvement #155

Description

@LeadcodeDev

Découvert en vérifiant le constat #5 du lot paint (PR #154), hors périmètre de ce constat.

Contexte

compute_scroll_offset produit une translation appliquée par draw_animated_background à tous les presets, avant le dispatch. PR #154 a borné cette translation à une période de tuile, ce qui corrige les deux presets réellement périodiques (grid_dots, heropattern).

Le problème restant

Trois presets sur cinq ne sont pas périodiques sous translation, et animent déjà leur propre mouvement en interne depuis speed / direction :

  • gradient_shiftdirection pilote le sens de rotation (Cw/Ccw), et le shader est dessiné sur Rect::from_wh(width, height), sans marge. Toute translation non nulle laisse donc une bande non couverte.
  • concentric_circles — calcule son propre offset = (time * speed) % spacing. La translation externe est une double animation, et translater un motif radial déplace son centre.
  • halo — anime ses zones en interne.

Avant PR #154 l'offset croissait sans borne : le fond finissait par sortir entièrement du cadre. Après, l'artefact est borné (≤ 60 px, la valeur par défaut de tile_spacing) mais toujours présent, sous la forme d'un saut périodique.

Piste

Faire retourner (0.0, 0.0) à compute_scroll_offset pour les presets dont le dessin n'est pas périodique sous translation — c'est-à-dire ne conserver le défilement externe que pour grid_dots et heropattern, les deux seuls qui n'ont aucun mouvement propre et en dépendent réellement.

À arbitrer avant de le faire : c'est un changement de rendu visible pour tout scénario existant qui déclare un direction sur l'un de ces trois presets. Le mouvement retiré est celui qui fait disparaître le fond, donc le retirer est une correction — mais la décision mérite d'être prise explicitement plutôt que glissée dans un lot de correctifs.

Vérification suggérée

Un test par preset : avg_luma d'une bande de 60 px au bord opposé à la direction de défilement doit rester stable sur toute la durée du scénario.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions