Obsédé par les problèmes de performance de mon appli dessin, je me suis creusé la tête et faire encore des recherches. J’ai enfin trouvé quelque chose qui vraiment m’a permis de faire un bond en avant. Le simple fait de procédé à la copie de l’image de pinceau (brush image) sur le canevas au moyen d’un accès direct en utilisant les pointeurs plutôt que l’accès par index de vecteurs ou tableaux (en anglais on dit array,  une structure de donnée linéaire mais ce n’est pas un vecteur au sens mathématique) me donne un gain de performance pouvant aller jusqu’à 500 % : ce qui est loin d’être négligeable.

En fait, le problème de performance m’inquiétait : des effets complexes étant pour prendre un temps considérable, j’allais jusqu’à me poser la question sur la viabilité du projet dans sa forme initiale.

Ce gain a cependant d’autres petits effets secondaires indésirables que je dois régler. Il y a aussi le fait que je doive recoder le coeur de l’appli… encore une fois. Ça en vaut pleinement le coup.

* * *

Frankly obsessed with the performance problems of my drawing application, I dug deeper and finally found something that really allowed me to take a leap forward. The simple fact of  copying of the brush image on the canvas by means of a direct access using  pointers rather than using the array indexes gives me a performance gain of up to 500%: which is far from negligible.

In fact, the problem of performance worried me: complex effects would have meant slow processing time which lead me to worry about the viability of the project in its initial form.

This new gain however has other small unwanted side effects that I have to deal with. There is also the fact that I need to re-code the app’s core… again. But it’s well worth it.