Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.05;
Скачать: CL | DM;

Вниз

DDSCL_EXCLUSIVE   Найти похожие ветки 

 
Evgeniy_K   (2004-08-01 19:43) [0]

Почему система не хочет ставить DDSCL_EXCLUSIVE? При этом раньше работало, а щас нигде не работает, мол FFFFFF. Код уже на много раз прочесал, так и не нашел причину. Остальное все исправно работает.


 
parovoZZ ©   (2004-08-01 20:13) [1]

А в чём сие проявляется?


 
Evgeniy_K   (2004-08-01 20:18) [2]

говорит, мол "обратилося по адресу FFFFFFFF" - по исполнению SetCooperative..


 
parovoZZ ©   (2004-08-01 20:27) [3]

Код в студию


 
NikeOLD   (2004-08-02 11:40) [4]

DDSCL_EXCLUSIVE
Requests the exclusive level. This flag must be used with the DDSCL_FULLSCREEN flag.
Скоре всего забыл, что этот флаг работает только в полноэкранном режиме.


 
parovoZZ ©   (2004-08-02 12:19) [5]

Ну раз  раньше работало, то наверное не в этом дело. Хотя чем чёрт не шутит.


 
Evgeniy_K   (2004-08-03 11:12) [6]

Нет фуллскрин стоит. Тут в чем-то другом загвоздка...


 
NikeOLD   (2004-08-03 15:09) [7]


> Evgeniy_K   (03.08.04 11:12) [6]

Проблема осталась?
Тогда полный код сюда


 
Evgeniy_K   (2004-08-03 19:07) [8]

 SpyError(
    DirectDrawCreateEx(nil, GID, IDirectDraw7, nil),
 "DirectDrawCreateEx");

 if Windowed then begin

   ZeroMemory(@ddsd, SizeOf(ddsd));
   ddsd.dwSize:= SizeOf(ddsd);
   GID.GetDisplayMode(ddsd);
   ScreenBitDepth:= ddsd.ddpfPixelFormat.dwRGBBitCount;

   SpyError(
      GID.SetCooperativeLevel(WindowH, DDSCL_NORMAL), "SetCooperativeLevel");

   ZeroMemory(@ddsd, SizeOf(ddsd));
   ddsd.dwSize:= SizeOf(ddsd);
   ddsd.dwFlags:= DDSD_CAPS;
   ddsd.ddsCaps.dwCaps:= DDSCAPS_PRIMARYSURFACE;
   SpyError(
      GID.CreateSurface(ddsd, GSurface, nil), "Create GSurface");

   SpyError(
      CreateOSPSurface(BackSurface, 800, 600), "Create BackSurface");

   SpyError(
      GID.CreateClipper(0, DClipper, nil), "Set Clipper");
   SpyError(
      DClipper.SetHWnd(0, WindowH), "Set SetHWnd");
 end
 else begin

//CORRECT DDRAW.DLL EXCEPTION!!!
   SpyError(
      GID.SetCooperativeLevel(WindowH, DDSCL_EXCLUSIVE or DDSCL_FULLSCREEN), "SetCooperativeLevel");

   SpyError(
      GID.SetDisplayMode (ScreenWidth, ScreenHeight, ScreenBitDepth, 0, 0), "SetDisplayMode");

   ZeroMemory(@ddsd, SizeOf(ddsd));
   with ddsd do begin
     dwSize:= SizeOf(ddsd);
     dwFlags:= DDSD_CAPS or DDSD_BACKBUFFERCOUNT;
     dwBackBufferCount:= 1;
     ddsCaps.dwCaps:= DDSCAPS_PRIMARYSURFACE or DDSCAPS_FLIP or DDSCAPS_COMPLEX;
   end;
   SpyError(
      GID.CreateSurface(ddsd, GSurface, nil), "Create GSurface (Primary)");

   ZeroMemory(@ddscaps, SizeOf(ddscaps));
   ddscaps.dwCaps:= DDSCAPS_BACKBUFFER;
   SpyError(
      GSurface.GetAttachedSurface(ddscaps, BackSurface), "Attached [BackSurface] Surface to [GSurface]");
 end;

Вот, если Windowed, то работает. Иначе на всех машинах экзепшен FFFFFFFF, DDRAW.DLL


 
Evgeniy_K   (2004-08-03 19:09) [9]

Если запускать не из Делфи:

Регистры:
EAX=00000000 CS=0000 EIP=00000000 EFLGS=00000000
EBX=00000000 SS=0000 ESP=00000000 EBP=00000000
ECX=00000000 DS=0000 ESI=00000000 FS=0000
EDX=00000000 ES=0000 EDI=00000000 GS=0000
Байты по адресу CS:EIP:

Содержимое стека:


Потом ошибка #216 at 0040372A



Страницы: 1 вся ветка

Текущий архив: 2004.12.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.044 c
14-1100684389
nookie84
2004-11-17 12:39
2004.12.05
ссылки


1-1100659587
uses-mind.dll
2004-11-17 05:46
2004.12.05
как настроить дэльфи на удаление собственного мусора ?


14-1100711514
Mihey_temporary
2004-11-17 20:11
2004.12.05
Опечатка в google


3-1099564954
Sour
2004-11-04 13:42
2004.12.05
Блокировка сущностей в БД


1-1101201969
Aser
2004-11-23 12:26
2004.12.05
Как удалить строку из StringGrid