Bonjour à tous,

Ma question aujourd'hui est juste alimentée par ma curiosité personnelle. J'utilise (abondement) gtk_widget_queue_draw_area() pour écrire des codes au cours desquels je fait bouger des choses (en cinématique) sur une drawing area. Ca marche très bien, mais je ne comprends pas (et suis épaté par) comment cette fonction gtk_widget_queue_draw_area() fonctionne algorithmiquement (je veux dire, comment a t-elle été codée par les développeurs de GTK).

Prenons un exemple, et imaginons que j'ai une drawing area carré de 500 sur 500 pixels. Sur cette drawing area j'ai plusieurs centaines de lignes de code qui conduisent à y dessiner progressivement des choses (une série de pixels, de différentes couleurs, etc.). A un certain moment, dans une zone identifiée de - disons 10 sur 10 pixels - quelque chose change de place, et j’appelle donc gtk_widget_queue_draw_area() sur cette zone particulière pour la réactualiser. Comment cette fonction fait-elle pour redessiner correctement cette zone ? Comment "sait-elle" ce qui a changé ou pas ? Il n'est pas possible que l'ensemble de la chaine algorithmique qui ait abouti à ce qui est présent ou pas dans cette zone soit recalculée.

Il y a quelque chose qu'il m'échappe ici (peut-être quelque chose de simple et évident?), et je suis preneur d'une explication.

Encore une fois, juste pour assouvir ma curiosité.

Cordialement, Eric.