![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| TransformerV |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.7.2009 Репутация: нет Всего: нет |
Здравствуйте!
Необходимо вывести на экран монитора поверх всех окон в видеопамять служебное изображение OSD. Т.е. как в телевизоре меню и т.д. Могу выводить с помошью GDI32 или WindowsLayer окон, только тогда когда игра D3D работает в оконном режиме, стоит перевести в полноэкранный режим D3D игру, выведенное изображение теряется. Использовал DirectDraw работает, выводится поверх всего, но при запуске любого D3D приложения, вывод рушится. Есть ли возможность или у когонибудь опыт по выводу изображения поверх всего на экране в полноэкранном D3D приложении. Подмены d3d9.dll d3d10.dll d3d11.dll не рассматривается. Операционная система Windows 7 Это сообщение отредактировал(а) TransformerV - 19.6.2013, 21:04 |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Подмена не нужна, нужен перехват функций DirectX (инжект своей DLL, в процесс игры) для того чтобы выводить OSD, я бы сказал так, придется делать 2 DLL для x32 и x64
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| TransformerV |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.7.2009 Репутация: нет Всего: нет |
Грубый метод, видел как программное обеспечение NVIDIA выводит полосы загрузки GPU прям в любой D3D игре в режиме SLI Попробывал создавать второй Desktop, CreateDesktop работает переключается прям в период работы игры в полноэкранном режиме, значит не все потеряно и есть метод как выводить поверх, только вот как?. X64 мне ненужно |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Программное обеспечение NVIDIA имеет прямой доступ к свои драйверам и может делать что угодно. Вот когда будешь разработчиком NVIDIA тогда получишь такой же доступ для NVIDIA
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| DarthTon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 7.2.2009 Репутация: 5 Всего: 6 |
Не такой уж и грубый метод. Fraps и ему подобные утилиты так делают. Загружается длл в процесс, перехватывается IDirect3DDevice9::Present (чаще всего), и в ней происходит рисование всего что необходимо. |
|||
|
||||
| TransformerV |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.7.2009 Репутация: нет Всего: нет |
Естественно что угодно, но я думаю что данная проблема не решена и на ноутбуках, большинство ноутбуков которые я смотрел там OSD выводится ввиде Layer окна, в полноэкранных также невидно нечего. Добавлено через 3 минуты и 14 секунд
От fraps проследуются тормоза из за глобального хука, на картах intel вываливается моментами в BSOD |
||||||
|
|||||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Кроме Fraps есть еще PlayClaw который не тормозит -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| TransformerV |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.7.2009 Репутация: нет Всего: нет |
За PlayClaw нечего немгу сказать, я вот подумал а через оверлей можно выводить без color key или наличие color key обязательно ? |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |