Witam,
Chcia³em pod WinAPI operowaæ samemu na bitach pamiêci obrazu. Czyli zamiast
funkcji API do np. rysowania Linii, mam swoje w³asne procedury które to
robi±. Tak wiêc mam wycinek pamiêci po którym sobie rysujê, a nastêpnie
rzucam to na ekran procedurk±:
procedure Update();
var
TempDC: HDC;
begin
SetBitmapBits(FBitmap, BuffSize, BuffAddr);
TempDC := GetDC(Handle);
BitBlt(TempDC, Left, Top, Width, Height, FMemDC, 0, 0, SRCCOPY);
ReleaseDC(Handle, TempDC);
end;
, wcze¶niej zostaje zainicjowane:
TempDC := GetDC(Handle); // Handle - uchwyt okna w którym bêdzie
wy¶wietlanie
FMemDC := CreateCompatibleDC(TempDC);
ReleaseDC(Handle, TempDC);
FBitmap := CreateBitmap(Width, Height, 1, 32, nil); // 32bity na
pixel - format identyczny z formatem karty graficznej
SelectObject(FMemDC, FBitmap);
, no i oczywi¶cie kawa³em pamiêci pod adresem BuffAddr o wielko¶ci BuffSize.
I sie okazuje ¿e procedurka update dzia³a "niezbyt szybko".
Mam wiêc pytanie: czy kto¶ wie jak szybciej mo¿na rzuciæ na ekran kawa³ek
pamiêci? Czy ju¿ tylko pozostaje DirectDraw?
Pozdrawiam,
SJ