[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

pl.comp.programming

WinAPI - cos szybszego niz BitBlt

SJ

12/21/2006 3:50:00 PM

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


3 Answers

geo

12/23/2006 1:50:00 PM

0

Takie drobne pytanko:

po co ci to? Wszystkie karty graficzne tez chcesz samemu obslugiwac
- nawet te, które jeszcze nie powstaly?

SJ

12/28/2006 5:54:00 AM

0

>po co ci to?

Mam w³asne procedury grafiki 2D (rysujê bezpo¶rednio po pamiêci).

> Wszystkie karty graficzne te¿ chcesz samemu obs³ugiwaæ
>- nawet te, które jeszcze nie powsta³y?

Nie, nie wszystkie - tylko swoj± w³asn±.

SJ


ris

12/28/2006 10:12:00 AM

0

SJ napisa3(a):
>> po co ci to?
>
> Mam w3asne procedury grafiki 2D (rysuje bezpo?rednio po pamieci).
>
>> Wszystkie karty graficzne te? chcesz samemu obs3ugiwaa
>> - nawet te, które jeszcze nie powsta3y?
>
> Nie, nie wszystkie - tylko swoj? w3asn?.
>

No raczej nie napiszesz nic szybszego.

r