Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.036 c
4-1098283077
L.evil
2004-10-20 18:37
2004.12.05
TFileStream


1-1100805723
Frozzen
2004-11-18 22:22
2004.12.05
Работа с указателями


1-1100702359
Oleon
2004-11-17 17:39
2004.12.05
Хочу создать формочку из bpl


3-1099897472
karat
2004-11-08 10:04
2004.12.05
Про работу SQL серверов и возвращаемый набор данных.


1-1100850063
vovchik
2004-11-19 10:41
2004.12.05
Предача параметров для exe





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский