Форум: "Игры";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
ВнизПростенькая программка на DirectX Найти похожие ветки
← →
delpher_gray © (2004-03-14 22:03) [0]Хочу разобраться с DirectX"ом, вот написал небольшой код программ, которая должна выводить изображение на экран, но в коде есть ошибка, и не знаю из-за чего :(
Вот код:...
var
Msg: TMSG;
Wnd: hWnd;
Wce: WNDCLASSEX;
Cancel: boolean;
DDraw: TDirectDraw;
DDSPrimary, DDSOne, DDSBack: TDirectDrawSurface;
Game: TGame;
...
procedure TGame.DoInit;
var
Desc: TDDSurfaceDesc;
Caps: TDDSCAPS;
begin
try
DDraw := TDirectDraw.Create(nil);
DDraw.SetCooperativeLevel(Wnd, DDSCL_EXCLUSIVE or DDSCL_FULLSCREEN);
DDraw.SetDisplayMode(1024, 768, 16);
Desc.dwSize := SizeOf(Desc);
Desc.dwFlags := DDSD_CAPS or DDSD_BACKBUFFERCOUNT;
Desc.ddsCaps.dwCaps := DDSCAPS_PRIMARYSURFACE or
DDSCAPS_FLIP or
DDSCAPS_COMPLEX;
Desc.dwBackBufferCount := 1;
DDSPrimary := TDirectDrawSurface.Create(DDraw, Desc);
Caps.dwCaps := DDSCAPS_BACKBUFFER;
DDSBack := DDSPrimary.GetAttachedSurface(Caps);
DDSOne := DDraw.LoadBitmap(SpriteFile, 256, 256);
except
on Exception do
begin
ShowMessage("DirectDraw init failed !");
Game.Finish;
raise;
end;
end;
end;
...
procedure TGame.OnDraw(X, Y: integer);
var
Rect: TRect;
begin
SetRect(Rect, 0, 0, 1024, 768);
DDSBack.BltFast(X, Y, DDSOne, @Rect, DDBLTFAST_WAIT); // Тут ошибка !!
DDSPrimary.Flip(nil, DDFLIP_WAIT);
end;
Ошибка вылазеет когда я пытаюсь вывести изображение на экран, а почему !?
Заранее благодарен.
← →
Kobik © (2004-03-15 19:46) [1]>> SetRect(Rect, 0, 0, 1024, 768);
Может 1, 1, 1024, 768
или 0, 0, 1023, 767 ?
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.033 c