Je viens d'ajouter une implémentation de disp_dev
(voir #13262) à #12509. J'ai quelques retours (certes mineurs) sur l'API actuelle :
Le paramètre color
pour disp_dev_map
est un pointeur uint16_t
. Cela implique que les pixels doivent être au moins de 16 bits. L'affichage e-Paper dans #12509 utilise un seul octet par 8 pixels, il serait donc plus naturel d'y utiliser uint8_t
. Surtout lorsqu'il s'agit de quelque chose comme une image de 8x3 pixels.
Dans l'implémentation pour l'ili9341 x2
et y2
décrivent la coordonnée du pixel intérieur du coin, pas le coin extérieur. Ceci est également noté dans la documentation de ce pilote. Il n'est cependant pas noté dans disp_dev_map
. Je pense aussi que (même lorsqu'il est explicitement noté) ce n'est pas une utilisation intuitive des coordonnées : un rectangle avec deux coins opposés ayant les coordonnées (5,5) et (5,5) a une aire de 0, pas 1.
disp_dev_set_invert
ne s'appliquera probablement pas à tous les affichages. Il n'est actuellement pas possible de le communiquer à l'utilisateur.
Les propositions:
Faites color
et uint8_t
.
Utilisez la largeur ( w
) et la hauteur ( h
) au lieu de x2
et y2
pour éviter toute confusion. C'est aussi ce que font SDL , Gegl et Cairo .
Ajoutez un type de retour à disp_dev_set_invert
indiquant le succès/l'échec. Cela devrait probablement aussi être le cas pour disp_dev_map
.
Ajoutez un type de retour à
disp_dev_set_invert
indiquant le succès/l'échec. Cela devrait probablement aussi être le cas pourdisp_dev_map
.
Une solution différente pour cela pourrait être d'ajouter un certain nombre d'indicateurs de capacité à un pilote pour indiquer différentes capacités de pilote.
J'ai une proposition pour le problème de profondeur de couleur dans le PR #14054 .
Alors que j'ai fait quelques simplifications de l'API pour les coordonnées dans #14051 .
Je pense aussi que (même lorsqu'il est explicitement noté) ce n'est pas une utilisation intuitive des coordonnées : un rectangle avec deux coins opposés ayant les coordonnées (5,5) et (5,5) a une aire de 0, pas 1.
Mais la simplification du coordinateur n'aborde pas ce problème. Juste une simplification de l'API elle-même.
Utilisez la largeur (l) et la hauteur (h) au lieu de x2 et y2 pour éviter toute confusion. C'est aussi ce que font SDL, Gegl et Le Caire.
Je suis d'accord avec celui-là. Devrait régler le problème.
Est-il en quelque sorte possible de pousser ce sujet pour qu'il ne mourra pas ? :)
Ping @aabadie @bergzand ?
Ping @aabadie @bergzand ?
Commentaire le plus utile
Ping @aabadie @bergzand ?