У меня есть приложение Windows Forms в C # /. NET 4, которое должно очень быстро перерисовать область (до 60 FPS).Форма с двойной буферизацией, и использование стандартного вызова Invalidate()
прекрасно работает, когда я обновляюсь только со скоростью 30 FPS или меньше, но выше 30 FPS она начинает сбрасывать кадры.Я знаю, что узкое место не в логике моей программы, потому что, если я закомментирую Invalidate()
, он будет работать с несколькими тысячами FPS.
Рисование довольно простое, только простые 2D круги и многоугольники: несколько сотен DrawEllipse()
и FillPolygon()
каждая с площадью не более 10х10 пикселей.Мне нужно подумать, что я могу сделать что-то, чтобы увеличить графическую производительность, не создавая полностью приложение DirectX с нуля.
Примечание: я сомневаюсь, что проблема с оборудованием (Intel Core i7-920 и nVidia GeForce 9400 GT)