Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

DoubleBuffering sa WinAPI-jem

[es] :: C/C++ programiranje :: DoubleBuffering sa WinAPI-jem

[ Pregleda: 2545 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stalker
Branko Kokanovic
Beograd

Član broj: 11897
Poruke: 606
*.rcub.bg.ac.yu



+2 Profil

icon DoubleBuffering sa WinAPI-jem09.04.2004. u 19:43 - pre 243 meseci
Ne znam da li ovo pitanje odgovara forumu

Zna li neko kako da BEZ koriscenja DirectX-a ne dobijam flickering u windows-u. Treba uraditi sve sa WinAPI-jem.
Jedino sto je meni padalo na pamet je da u WM_PAINT uradim
Code:

hdcNovi=CreateCompatibleDC(hdc);
//ovde crtam nesto u hdcNovi
BitBlt(hdc,...hdcNovi,...SRCCOPY);
DeleteDC(hdcNovi);


Da li idem u pravom smeru ili ne, posto mi gornji kod nikako ne radi (ekran je uvek beo)?
 
Odgovor na temu

Mikky

Član broj: 18
Poruke: 1563
*.vdial.verat.net

ICQ: 44582291


+58 Profil

icon Re: DoubleBuffering sa WinAPI-jem09.04.2004. u 21:06 - pre 243 meseci
Ides ovim redosledom (nemam bas kod pred sobom ali cu da improvizujem)

Code:

hMemDC = CreateCompatibleDC(hdc)
hBmp = CreateCompatibleBitmap()
SelectObject(hMemDC,hBmp)
// crtas na hMemDC

// kopiraj mem dc u pravi dc
BitBlt(hdc, hMemDC)

// oslobodi mem dc i hbmp
DeleteObject(hMemDC)
DeleteObject(hBmp


Takodje treba da handlujes WM_ERASEBKGND poruku i da vratis 1, jer bez ovga dzabe si krecio :)
Code:

case WM_ERASEBKGND:
 return 1;



-I know UNIX, PASCAL, C, FORTRAN,
COBOL, and nineteen other high-tech
words.
 
Odgovor na temu

stalker
Branko Kokanovic
Beograd

Član broj: 11897
Poruke: 606
*.rcub.bg.ac.yu



+2 Profil

icon Re: DoubleBuffering sa WinAPI-jem10.04.2004. u 00:01 - pre 243 meseci
Hvala brate puno. Glupost, ali ne bih se nikad setio. Evo koda, ovaj put bez improvizacije:)
Code:

RECT Pravougaonik;
int x,y;
//--------------------------------------
//Ovo je jedino sto sam uspeo da smislim za velicinu hBmp
GetWindowRect(hWnd,&Pravougaonik);
x=Pravougaonik.right-Pravougaonik.left;
y=Pravougaonik.bottom-Pravougaonik.top;
//Mozda je malo vise nego sto treba, ali ne mari:)
//---------------------------------------
hMemDC=CreateCompatibleDC(hdc);
hBmp=CreateCompatibleBitmap(hdc,x,y);
SelectObject(hMemDC,hBmp);
//crtanje (i brisanje pozadine!!!) u hMemDC
BitBlt(hdc,0,0,x,y,hMemDC,0,0,SRCCOPY);
DeleteObject(hMemDC);
DeleteObject(hBmp);
DeleteObject(BelaCetka);
 
Odgovor na temu

[es] :: C/C++ programiranje :: DoubleBuffering sa WinAPI-jem

[ Pregleda: 2545 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.