Witam
Mam problem, chce zrobic podwojne buforowanie wykorzystujac StretchBlt tak aby moc jednoczesnie skalowac wyswietlany obraz.
Poki co mam takie cos:
HDC memDC;
HBITMAP hMemBmp;
HBITMAP hOldBmp;
hdc = BeginPaint(hWnd, &ps);
memDC = CreateCompatibleDC(hdc);
hMemBmp = CreateCompatibleBitmap(memDC, 700, 600);
hOldBmp = (HBITMAP)SelectObject(memDC, hMemBmp);
//rysowanie po memDC, wykorzystujac m.in. rozne kolorowe piorka
StretchBlt(hdc, 0, 0, iWidth, iHeight, memDC, 0, 0, 700, 600, SRCCOPY);
SelectObject(memDC, hOldBmp);
DeleteObject(hMemBmp);
DeleteObject(hOldBmp);
DeleteDC(memDC);
EndPaint(hWnd, &ps);
Teraz problem.. nie zdaje sie to dzialac tak jak powinno, nadal jest miganie gdy puscimy to w timer, oraz przy skalowaniu...
Gdy ta linijka:
hMemBmp = CreateCompatibleBitmap(memDC, 700, 600);
wyglada tak jak jest teraz, to obraz jest czarnobialy mimo zastosowania kolorowych piorek (przy rysowaniu na zwyklym hDC nie am tego problemy i piorka sa kolorowe)
Gdy zmienie na:
hMemBmp = CreateCompatibleBitmap(hdc, 700, 600);
To odswiezanie jest znacznie wolniejsze, znim sie przerysuje trwa to pareset milisekund i widac wyrazne pojawianie sie obrazu ale kolory juz sa widoczne..
Co jest.. jak temu zaradzic by byly kolory i skalowanie szybkie z zastosowaniem podobnej techniki?
Bylbym wdzieczny za pomoc...