I have to resume on this timing issue problem. I already thought that all is fine and working, but no...

I still noticed some glitches and jumps here and there with that second GDIBlitting example and begun wondering what the heck.

After a while I realized that the loop goes so fast that there is no time difference between the call of TimeGetTime on each loop.

So, I made an array and begun to collect elapsed times between the updates into it. Array is size of 10 cells. Then I set a break point at the code after a tenth loop. I looked the values in the array on noticed that only 2 cells had a value other than zero!! (my GetTime() -method gives result in seconds how much time has passed since initiazation of timer class).

Then I made lot's and lot's of more similar tests and noticed same thing again and again. So the conclusion is that the loop goes so fast that timer has no resolution to measure the difference between calls.

Now I implemented new timer. It collects elapsed times to array as I mentioned and calculates average of those time which isn't zeros. So, if array has 10 values and three of them is another than zero then the sum of those values is divided by three and that's the result of elapsed time since previous call.

I'm currently putting up a new test application (again) with this 'MyGameTimer' and share it here (with sources) later on today / night.

It uses compatible bitmap as an back buffer, which is actually all ok. (the issue of a thread is not about a back buffer anymore as it was at the very begining ).