Mon jeu de toile simple semble bien fonctionner sur Chrome et FF sur Mac / Linux. Je n'ai pas encore eu l'occasion de le tester sur des smartphones ou des environnements Windows. Il n'utilise pas la double mise en mémoire tampon, mais j'ai vu quelques exemples de toile JS l'utiliser.
Quand est-il recommandé d'utiliser la double mise en mémoire tampon? Cela fait-il une différence uniquement pour des navigateurs spécifiques? Y a-t-il un impact significatif sur les performances?
Merci!
javascript
html5
html-canvas
double-buffering
Petteri Hietavirta
la source
la source
Réponses:
La double mise en mémoire tampon d'un jeu basé sur une toile sera certainement un succès de performance. Vous dessineriez une quantité supplémentaire de pixels égale à la taille de votre toile à chaque image. Dans les jeux basés sur le canevas, dessiner sur un canevas est le plus gros goulot d'étranglement dans la plupart des cas et vous souhaitez limiter cela autant que possible, en particulier sur les appareils mobiles.
Chrome a une accélération GPU (à partir des dernières versions) ainsi qu'un moteur JavaScript rapide (V8) méchant que vous ne verrez pas correspondre dans un environnement mobile. Même dans Chrome, vous constaterez un ralentissement en mettant en œuvre une double mise en mémoire tampon.
Pour faire court, l'avantage de la double mise en mémoire tampon (traitant de la "déchirure") ne vaut pas le coup de performance que vous prendrez très probablement.
la source
Il n'est pas nécessaire de doubler la mémoire tampon des jeux html5. Le navigateur gère déjà cela pour vous en ne mettant à jour l'objet canevas qu'après l'exécution de votre script. http://www.mail-archive.com/[email protected]/msg19969.html
la source
J'ai remarqué que l'utilisation de la double mise en mémoire tampon comme ceci:
ralentit en fait le rendu (fps inférieurs), au lieu de l'accélérer
la source