Кароче, вдруг кому интересно. стояло у меня Sleep(10) и у меня всё нормально по времени работало (а sleep я делал ради того чтобы проц на 100% незагружать) затем... после твоего сообщения, возникла идея поставить Sleep(0), просто параметр - кол-во милисекунд. Но работало всё также - я подумал "Неужели всё у меня лагает?" Вырубил Sleep вообще - всё стало лётать бешено. Ну ладно думаю, какая-то хрень. Раньше помню был косяк с GetTickCount - не хватало точности, оказалось сёдня разобрал: хотя у него и написано что он возвращает кол-во милисекунд со старта компа, но всё же обнаружился косяк: он выдаёт (на моём компе) с точностью 15 милисекунд (просто там написано "вы задаёте минимальное время которое будет ожидаться"), решил найти как узнавать это значение, нашел - GetSystemTimeAdjustmet. Придётся опять прибегать к более сложной весчи - High-Resolution Timer - выдаёт значение до герцев %) ну конечно скорее всего тоже не до 1-го герца, а с шагом каким-то, хотя кто его знает. Буду делать так: если время ожидания до смены кадра < удвоенного(по принципу погрешностей) этого шага Sleep-а и GetTickCount, то можно смело Sleep(0) делать... а иначе придётся юзать "High-Resolution Timer" шоб точно добраться до момента ^^. topos84, у тебя может быть это число (хотя сомневаюсь) не 15 а больше - и поэтому у тебя "лагает", просто он у меня рисует каждый кадр одноразово, поэтому фпс должен быть... сами посчитайте если на кадр 15 милисекунд. (1000/15=66.666.... неслабо такто, надо бы 60 сделать ^^).
Сейчас попробую сделать чтобы всё было точно...