Вниз
Скачать: CL | DM;

Простенькая программка на 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.022 c
4-1085401908
Oleg
2004-05-24 16:31
2004.07.04
Полупрозрачная форма


1-1087737033
*Boba
2004-06-20 17:10
2004.07.04
Edit


1-1087316859
Артем
2004-06-15 20:27
2004.07.04
Скрипт-файл ресурсов не работает


14-1087056449
Xtz
2004-06-12 20:07
2004.07.04
Настроить маршрутизацию в 2003 сервере


9-1045200667
Le!
2003-02-14 08:31
2004.07.04
Искуственный интелект!




   Наверх