Direct Draw по русски
Усложняем ситуацию
Теперь давайте усложним ситуацию и попробуем отобразить картинку на первичной поверхности. Для этого нужно сначала подготовить картинку размером 640х480, далее, все в том же разделе var объявить переменную типа TBitmap. Необходимо также объявить переменную типа HDC - дескриптор контекста устройства (в нашем случае поверхности).
var
. . . . .
bmp : TBitmap;
DC : HDC;
. . . . .
begin
. . . . .
bmp := TBitmap.Create;
bmp.LoadFromFile(‘{Имя файла}');
SecondarySurface.GetDC(DC);
BitBlt(DC,0,0,640,480,bmp.Canvas.Handle,0,0,SRCCOPY);
SecondarySurface.ReleaseDC(DC);//Необходимо удалить DC
bmp.Free;
end.
При запуске программы на выполняется метод Flip один раз. При этом переключаются поверхности и на экране возникает загруженная нами картинка.
Пойдем дальше и рассмотрим основу эффекта мультипликации используя все тот же родной DirectDraw. |