or do you use a polling timer in a thread loop?
or is it a kernel callback?
there are about a hundred ways to set up timers in windows...
if you're using another thread the problem with tearing occurs because two threads might be working on graphics at the same time. your main window dispatch might dispatch a wm_paint in the middle of the timer thread calling idle, which triggered an animation update in a plugin.
in fact, because windows doesn't to my knowledge do any locking at all with these messages, you might be painting into the same pixels in two different places at identical times..
unless you have an example of the "correct" way to do animation ... all the implementations i've ever seen used idle, as to my knowledge that is the only possibility.
your complaints about me suggesting updates from another thread apply to the way you claim you're calling idle...

