Question

Salutations,

J'ai un problème avec Gdk.PixbufAnimationIter d'un PixbufAnimation.Le code ressemble à ceci :

Gdk.PixbufAnimation animation = new Gdk.PixbufAnimation(System.IO.Path.Combine([filepath], [filename]));
Gdk.PixbufAnimationIter iter = animation.GetIter([Current Time as IntPtr]);

Voici ce que j'ai lu sur PixbufAnimation.Iter :

start_time est l’heure de début spécifiée en tant que flottant en tant que sortie de l’application Python time.time() fonction. start_time Marques Le début de l’animation Lecture.

GTK# n'a pas le time.time() fonction, et j'ai essayé ce qui suit:

long StartTime = DateTime.Now.Millisecond;
IntPtr SysTime = new IntPtr (&StartTime);
Gdk.PixbufAnimationIter iter = animation.GetIter(SysTime);

Mais cela ne semble pas récupérer le temps de manière cohérente.Les nombres générés à partir de cela semblent très aléatoires et proviennent probablement d'une mauvaise adresse en mémoire (seulement une supposition, ne me citez pas là-dessus).

J'ai également lu ceci dans une autre documentation de PixbufAnimation :

En guise de raccourci, si start_time est NULL, Le résultat de l' g_get_current_time()sera utilisé automatiquement.

Cependant, le compilateur refuse d'autoriser un NULL valeur pour IntPtr.

J'ai également lu que "l'heure actuelle" n'est utilisée que si vous essayez de modifier l'animation, par exemple en rendant l'affichage de l'animation plus rapide ou plus lent.

Quelqu'un peut-il m'aider ?

Était-ce utile?

La solution

Si vous transmettez IntPtr.Zero à la méthode GetIter, cela devrait revenir à passer NULL à la méthode C.Cette API manque un peu de liaison, pour être honnête, car le paramètre start_time est censé être un GTimeVal qui n'est pas encore lié en glib-sharp.Vous pouvez certainement signaler un bug à ce sujet et nous pouvons étendre l'API.Nous pourrions probablement utiliser une surcharge GetIter(), par exemple, pour gérer ce scénario plus proprement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top