Don't triple buffer!!!! Don't flush unless needed!!!!!! Don't animate more than 30 fps don't draw a larger rect than needed! Cache data in live reize operations use InvalWindowRect and -setNeedsDisplay