Faire un thème Recalbox

45 pages · 8 sections
FRENESDE Tout afficher Créer mon thème

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.

ÉcritureExempleCe que ça veut dire
Ratio (par défaut)0.5 0.25une proportion de l’écran, de 0 à 1
Pourcentage50% 25%la même chose, écrit autrement
Pixels960p 270pdes 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 :

ValeurCe que ça veut dire
< 1une proportion du petit côté de l’écran — 0.05 = 5 % de la hauteur en 16:9
>= 1une 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 -->