The overall performance are really worse.
Can you give me an example, with numbers?
I should really test it, there's no way it can be worse than SFML 1.
LoadFromPixels() :
- 55 FPS
- 25 images decoded each second
- LoadFromPixels() takes about 1-2% of the execution time
- sf::Sprite::Draw() takes 10% to 17% of the execution time
UpdatePixel(s) :
- 50 FPS
- 25 images decoded each second
- UpdatePixels() takes about 15% of the execution time (meaning the mutex for the sf::Image object is locked for that time)
- sf::Sprite::Draw takes less that 1% of the exec time
But the most weird point is that the image is displayed while it's being updated, even with the locks. This happens with UpdatePixels() only. I don't know whether this is due to the context sharing or something like that... (the image being duplicated from a context to another ?)
Thus the performances look quite similar (you're were right to ask for numbers
), but the movie playback is absolutely not as smooth as with LoadFromPixels().
@Hiura: as for the testing, I would just suggest to try with LoadFromPixels() and with UpdatePixels(), so that other user can check whether this is changing something. I'll post the SFML version independent code as soon as I've something not too dirty.