Riot: disp_dev : profondeur de couleur et système de coordonnées

Créé le 1 avr. 2020  ·  5Commentaires  ·  Source: RIOT-OS/RIOT

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 .

drivers RFC new feature question

Commentaire le plus utile

Ping @aabadie @bergzand ?

Tous les 5 commentaires

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 .

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 ?

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

gschorcht picture gschorcht  ·  7Commentaires

jue89 picture jue89  ·  5Commentaires

jia200x picture jia200x  ·  5Commentaires

kaspar030 picture kaspar030  ·  6Commentaires

jdavid picture jdavid  ·  5Commentaires