J'effectue quelques essais de code pour faire un jeu en 2d isométrique. Pour l'instant j'ai décidé d'utiliser un GtkDrawingArea comme support de dessin. Jusqu'ici rien d'original.
J'ai implémenté quelques fonctions me permettant d'ajouter à la volée des sprites animés. C'est ici que je me pose des questions.
Tout d'abord je suis parti sur l'idée d'appeler le CALLBACK attaché au signal "expose-event" 30 fois / s. Ca fonctionne. Mais je me dis aussi que redessiner tout le GtkDrawingArea n'est pas forcément l'idéal en terme de performance. Alors j'ai essayé de ne redessiner que les parties nécessaires en utilisant la fonction gdk_window_invalidate_rect();.Ca fonctionne aussi mais j'ai l'impression que ca revient au même. D'ailleurs la doc officielle me dit :Ai-je bien tout compris ?Adds region to the update area for window. The update area is the region that needs to be redrawn, or "dirty region." The call gdk_window_process_updates() sends one or more expose events to the window, which together cover the entire update area.
Partager