· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Полноэкранный режим DirectDraw

Посл.отвђт Сообщенiе


Дата: Авг 15, 2004 12:30:41

Есть у меня старая игрушка и хочется заставить ее работать в окне. Опытным путем :) было установлено, что функцией SetWindowPos устанавливается размер 400 на 300 в точку (0,0). Проблема в том, что она находится где-то в дебрях ddraw. Как там пропатчить я не знаю при том, что после ее вызова SoftIce через раз перезагружает систему. На sysenter. Как можно это провернуть?


Дата: Авг 15, 2004 13:00:34

Хм, мне ведь никто не мешает сделать SetWindowProc еще раз, но тогда это будет просто область на экране... Надо попробовать. А можно создать окно и привязать к нему DirectDraw?


Дата: Авг 15, 2004 16:25:10

DirectDraw в любом случае "привязывается" к окну.
Ищите вызов DirectDrawCreate(Ex), далее будут вызовы через COM VTable
Что-то вроде:
lpDD->SetCooperativeLevel(hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
lpDD->SetDisplayMode(400, 300, 8);

В самом простом случае попробуйте поменять DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN на 0 и убрать SetDisplayMode.
Хотя если „старая игрушка“, то наверняка используется палитра, и в случае с окном могут быть проблемы..


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.071