Je ne suis pas, mais alors pas du tout convaincu de l'optimisation apportée par l'utilisation de "calques" intermédiaires. S'agit-il bien de faire comme ceci:
Si c'est bien ce procédé, alors un petit test (autre version, 10x moins longue pour ceux qui ne sont pas sur leur PC fixe) me laisse sceptique. Dans le canvas de gauche, je dessine 126 (63*2=126) fois une image, en changeant sa position (je simule donc le dessin d'une carte isométrique). Je refais ce dessin 1000 fois, et je mesure le temps total. A droite, je ne fais que recopier, 1000 fois aussi, le canvas de gauche (comme si le canvas de gauche était mon "calque").
Résultat? Les deux ont les mêmes performances, avec peut-être un léger avantage à la méthode "non-optimisée" qui consiste à redessiner toutes les tuiles (2760 fps pour le cas "je refais toutes les tuiles", contre 2730 fps pour le cas de droite, donc la différence est négligeable).
Et encore, ça, c'est sous firefox ! Sous chrome, la fameuse "optimisation" détruit les performances du navigateur:
6100fps en mode "classique" (redessiner les tuiles)
3300fps en mode "redessiner le calque" !
Là, le facteur n'est plus négligeable...
Quid de cette fameuse "optimisation" alors? Ou ai-je fait une erreur quelque part?
- Créer un canvas assez grand (masqué)
- Dessiner dedans le terrain
- Dessiner un morceau de ce canvas "géant" dans le vrai canvas, celui qui est visible
Si c'est bien ce procédé, alors un petit test (autre version, 10x moins longue pour ceux qui ne sont pas sur leur PC fixe) me laisse sceptique. Dans le canvas de gauche, je dessine 126 (63*2=126) fois une image, en changeant sa position (je simule donc le dessin d'une carte isométrique). Je refais ce dessin 1000 fois, et je mesure le temps total. A droite, je ne fais que recopier, 1000 fois aussi, le canvas de gauche (comme si le canvas de gauche était mon "calque").
Résultat? Les deux ont les mêmes performances, avec peut-être un léger avantage à la méthode "non-optimisée" qui consiste à redessiner toutes les tuiles (2760 fps pour le cas "je refais toutes les tuiles", contre 2730 fps pour le cas de droite, donc la différence est négligeable).
Et encore, ça, c'est sous firefox ! Sous chrome, la fameuse "optimisation" détruit les performances du navigateur:
6100fps en mode "classique" (redessiner les tuiles)
3300fps en mode "redessiner le calque" !
Là, le facteur n'est plus négligeable...
Quid de cette fameuse "optimisation" alors? Ou ai-je fait une erreur quelque part?