Hi there! I just started using Spine in my productive process and it really is an awesome tool.
But at the moment it's a massive performance hog too. I noticed it instantly as i tried debugging a game while Spine was running in the background. The game ran all stuttery and even using photoshop was all choppy too. That's when i noticed that Spine was the culprit, wasting 40% of the quad-core CPU and pretty much all of the GPU performance while sitting in the background completely idle and doing nothing. (On my more powerful gaming rig it's still wasting 20% CPU, but is less noticable.)
Wasting performance like this is a total no-go for a desktop application that will often times just sit idle in the background. That's why i consider this a bug, even though it doesn't break Spine's functionality.
Frist of all: I guess VSync isn't used at the moment? Because the amount of performance wasted seems very high for what Spine renders. Activating VSync by default could already lower the required processing power by a good amount.
Now for the actual fix: Spine seems to be rendering in a constant loop even when no animation is running and no input is made, wasting resources by redrawing the exact same screen over and over again. Drawing in a loop should only happen when an animation is actively running. Otherwise drawing should only occur when:
A) The window has focus and receives mouse or keybord interaction.
B) The window invalidates / receives a paint event.
This will reduce the required processing power to only a tiny fraction of what it is now while working with no animation actively running (because even mouse move events usually happen far less frequent than 60 times a second) and reduce it to pretty much nothing when it just sits idle in the background.
This is no pressing matter and i can avoid the issues caused by it by simply closing down Spine when i'm doing anything else. So no sweat while Nate enjoys his hopefully incredible honeymoon. 🙂 I just hope it will be fixed at some point in the not too distant future so that the tool can be left open without wasting performance like crazy.