   win32 Painting Process
  I have a few questions about the painting process under windows.From the times I had to write my own painting routines (MFC, win32, etc...) I learned that in order to avoid flickering, I would need to use double buffering, ie. paint everything into a separate buffer which is then copied (or swapped?) into the actual target dc of my control.This led me to believe that windows (the desktop window manager or whatever is responsible for that) visits all applications and grabs the dcs of all controls which are then "merged" to create the final image that is displayed on the screen. At least, this would explain the flickering artifacts, since I imagined that windows would simply grab the dc, even if something painted on it.Can anybody verify if this is the general approach or if not, explain how this works exactly?My second question is about hardware acceleration in newer versions of windows. Since Vista (with the new wdm) drawing (or some part of it) seems to be hardware accelerated. Can anybody tell me which part it is? I figured that all drawing routines could simply be handled by the graphics card (instead of being handled by the cpu). I imagine a buffer of commands that is sent to the graphics card (like with DX11) and then evaluated every now and then (for example when the wdm wants the contents of a dc).On the other hand, maybe only the part where the windows are rotated is accelerated by hardware, and nothing else.I also tried googling this stuff, but "windows painting" gave me results that explained to me, how to use fingerpaint :D, and "win32 painting" only found results that explained how to actually write own painting routines.   