Pravilo prvo:
Uvek crtaj u memoriji (tj. u kompatibilnom DC-ju) i kad je gotovo uradi BLT
u dc(this). BTL je garantovano sinhron sa vertical blanking intervalom, tako
da nikada nece doci do flicker-a.
Pronadji na
www.codeproject.com klasu CMemDC od Keith Rule-a - fina
dosetka koja lepo radi
Pravilo drugo:
Ne prefarbavaj sto ne moras:
- razdvoj regione koji se nikada ili retko prefarbavaju od onih koji se svaki
cas prefarbavaju.
- umesto InvalidateRect mozes koristiti i InvalidateRgn
- ako istu povrsinu prefarbavas dva ili vise puta flicker je garantovan
Pravilo trece:
- sinhronizuj crtacke rutine sa metodima koji od spolja setuju parametre
bitne za crtanje. Upotrebi kriticnu sekciju (CCriticalSection radi sasvim
lepo). Message handleri su medjusobno sinhronizovani, ali ostale metode
iste klase ne mora da budu (i najverovatnije nisu).