Ratio, pourcentage ou pixels
Les trois écritures acceptées pour une position ou une taille.
Plusieurs propriétés s’écrivent avec deux nombres séparés d’une espace : x y. C’est le cas de pos, size, maxSize, origin, rotationOrigin, logoSize et reflection.
Chaque nombre accepte trois écritures, et on peut les mélanger dans la même paire.
| Écriture | Exemple | Ce que ça veut dire |
|---|---|---|
| Ratio (par défaut) | 0.5 0.25 | une proportion de l’écran, de 0 à 1 |
| Pourcentage | 50% 25% | la même chose, écrit autrement |
| Pixels | 960p 270p | des pixels réels, suffixe p |
<pos>0.5 0.5</pos> <!-- le centre -->
<pos>50% 50%</pos> <!-- exactement pareil -->
<pos>960p 540p</pos> <!-- le centre… d’un écran 1920×1080 seulement -->
Ratio ou pourcentage : à préférer
x est une proportion de la largeur, y de la hauteur. Un composant en 0.5 0.5 est au centre d’un 1920×1080 comme d’un 640×480. C’est ce qui permet à un thème de tenir sur plusieurs écrans.
Les pixels : une position fixe
Un pixel est un pixel. 960p, c’est 960 pixels depuis le bord gauche, un point.
Cela ne s’adapte à rien : sur un écran qui fait moins de 960 pixels de large, le composant est hors de l’écran. C’est une position absolue, à l’opposé du ratio.
Les pixels ne se justifient donc que pour ce qui doit rester fixe quelle que soit la définition : l’épaisseur d’un filet, un décalage de quelques points. Pour tout le reste, prenez le ratio.
Le cas particulier de fontSize
fontSize ne prend qu’un seul nombre, et son unité dépend de sa valeur :
| Valeur | Ce que ça veut dire |
|---|---|
< 1 | une proportion du petit côté de l’écran — 0.05 = 5 % de la hauteur en 16:9 |
>= 1 | une taille de référence 240p, que Recalbox multiplie selon l’écran |
Au-dessus de 1, la valeur n’est pas des pixels. C’est une taille pensée pour un écran de 240 lignes, multipliée d’un cran à chaque palier de définition : ×1 jusqu’à 288 pixels de petit côté, ×2 jusqu’à 576, ×4 en 1080p. <fontSize>8</fontSize> fait donc 16 pixels sur un écran 480p et 32 pixels en 1080p. La même règle vaut partout — textes du menu compris.
<fontSize>0.045</fontSize> <!-- 4,5 % du petit côté : s’adapte partout, à préférer -->
<fontSize>8</fontSize> <!-- taille « 240p » : 16 px en 480p, 32 px en 1080p -->