Je ne sais pas si c'est le seul moyen possible, mais
j'ai lu que pour mettre un seul pixel sur l'écran à l'endroit de votre choix, il faut écrire quelque chose dans un endroit appelé framebuffer.
Alors je suis devenu curieux, s'il est possible d'entrer dans cet endroit et d'y écrire quelque chose afin d'afficher un seul pixel quelque part sur l'écran.
Réponse acceptée :
oui, en dehors du serveur X, dans tty, essayez la commande :
cat /dev/urandom >/dev/fb0
si des pixels colorés remplissent l'écran, votre configuration est correcte et vous pouvez essayer de jouer avec ce petit script :
#!/usr/bin/env bash
fbdev=/dev/fb0 ; width=1280 ; bpp=4
color="\x00\x00\xFF\x00" #red colored
function pixel()
{ xx=$1 ; yy=$2
printf "$color" | dd bs=$bpp seek=$(($yy * $width + $xx)) \
of=$fbdev &>/dev/null
}
x=0 ; y=0 ; clear
for i in {1..500}; do
pixel $((x++)) $((y++))
done
où la fonction 'pixel' devrait être une réponse… écrivez un pixel à l'écran en modifiant les valeurs d'octets (bleu-vert-rouge-alpha) sur le décalage x-y du périphérique /dev/fbX qui est le tampon de trame pour la carte vidéo.
ou essayez de dessiner un pixel de ligne (jaune sur x:y=200:100, si la largeur est de 1024) :
printf "\x00\xFF\xFF\x00" | dd bs=4 seek=$((100 * 1024 + 200)) >/dev/fb0
MISE À JOUR : ce code fonctionne même à l'intérieur du serveur X, si nous configurons simplement X pour utiliser le tampon de trame. en spécifiant fb0 dans /usr/share/X11/xorg.conf.d/99-fbdev.conf