PDA

Просмотр полной версии : [Обсуждение] d3d8


xoraxax
19.10.2011, 17:22
Были у меня мысли по поводу создания ingame интерфейса к моим утилиткам. Но я пытался добавлять контролы к уже существующим окошкам (так у меня и не получилось ничего толкового =( )

Человек же пошел другим путем.

Ingame Menu ([Ссылки могут видеть только зарегистрированные и активированные пользователи])

Не мог бы кто-нибудь поподробней рассказать как это работает.

N00bSa1b0t
19.10.2011, 18:09
Вольный перевод того поста:

PW использует D3D для отрисовки, версию D3D8.
Вся отрисовка идет между функциями BeginScene и EndScene. Ставим хук на EndScene, чтобы получить возможность рисовать на экране в самую последнюю очередь (то, что мы нарисуем, будет поверх остального).

Далее заменяем оконную процедуру своей
WNDPROC wpOrigEditProc = (WNDPROC)SetWindowLong(hwnd, GWL_WNDPROC, (LONG) WndProc);
В ней проверяем, если пришли сообщения (нажатия клавиш, клики мышкой), и они не относятся к нашим элементам управления - отправляем их дальше в старую оконную процедуру. Если наши - то обрабатываем.

Собственно для того, чтоб рисовать такое надо:
1) Уметь ставить хуки на EndScene (гугл в помощь)
2) Рисовать что-то при помощи директа
3) ???
4) Profit

xoraxax
19.10.2011, 18:32
Капитан, я хочу от вас детей XD