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

Вниз

Вывод текста на изображение игры   Найти похожие ветки 

 
PMak ©   (2008-03-12 14:02) [0]

прочитал статьи по DirectX, посмотрел примеры, как вариант вывода надписи с помощью заголовков Direct3D распространяемых www.clootie.ru . мне интересно, как подключиться к поверхности игры, чтобы выводить туда текст. я в этом деле новичек, сорри если с терминологией напутал, очень надо


 
Eraser ©   (2008-03-12 17:02) [1]


> PMak ©   (12.03.08 14:02)

в общем случае никак, поэтому лечше не изобретать велосипед, а либо рисовать на поверхности DC экрана, либо писать свой драйвер )


 
PMak ©   (2008-03-12 18:45) [2]

Может посоветуете что: игра Ил2 и надо вывести текстовую информацию поверх игры. что то типа OSD дисплея.


 
Sapersky   (2008-03-12 19:37) [3]

Простой вариант: переключить Ил-2 в оконный режим и выводить всё что надо в своём окне рядом с игрой.
Сложный: внедрение DLL в адресное пространство игры, перехват OpenGL-функции SwapBuffers (у Ил-2 "родной" движок  OpenGL"ный), вывод текста средствами OGL (или можно попробовать просто на DC окна, если сразу после SwapBuffers, мерцать не должно).


 
Sapersky   (2008-03-12 23:16) [4]

Ещё можно использовать оверлей, при условии, что разрешение в игре такое же, как на рабочем столе.


 
PMak ©   (2008-03-13 05:52) [5]

т.е. если разрешение в игре меньше чем у рабочего стола, то оверлей работать не будет?


 
Sapersky   (2008-03-13 10:40) [6]

Если игра его изменяет, в большую или меньшую сторону - неважно.
Собственно, нет гарантии, что будет везде работать и при сохранении разрешения (хотя у меня работает). Теоретически - не должно, т.к. при использовании полноэкранного (эксклюзивного) режима DX(OGL)-приложение выкидывает из видеопамяти данные всех прочих приложений. Практически, вероятно, в некоторых драйверах переход в полный экран с сохранением разрешения реализован без использования эксклюзивного режима.


 
PMak ©   (2008-03-13 11:39) [7]

есть программа TeamSpeak Overlay http://www.teamspeakoverlay.com, она работает и в OpenGL и в DirectX, я ориентировался на этот пример. К сожалению я работаю с БД, а необходимость вывода поверх Ил2 возникла при разработке клиентской части к программе управляющей сервером, для вывода сервером информации касающейся игрока. Чем больше читаю о методах, тем в голове все больше каши :(
Может кто поможет, хотя бы набросками или небольшим примером, плиз


 
Sapersky   (2008-03-13 13:58) [8]

есть программа TeamSpeak Overlay http://www.teamspeakoverlay.com

Судя по:
It does this by directly hooking the DirectX or OpenGL APIs.
она работает через перехват API. Overlay - это, видимо, просто название, с соотв. аппаратной функцией видеокарты никак не связано.
Пример перехвата D3D есть в библиотеке madCodeHook. Также статьи по перехвату (с примерами на Delphi) есть на wasm.ru. Ну и соотв. глава известной книги Рихтера...

Насчёт того оверлея, про который я писал в [4], [6] и здесь:
http://www.delphimaster.ru/articles/directx/index.html
конкретно с OGL можно попробовать что-то сделать, слышал утверждения что полноэкранный режим у него "ненастоящий". Проверял вот этот пример:
http://sapersky.narod.ru/files/FString.rar
с любительскими OGL-игрушками (Ил-2 под рукой нет). C одной оверлей удаётся переинициализировать при переключении режима, с другой нет - похоже, тут как повезёт (с D3D не повезёт определённо).


 
PMak ©   (2008-03-13 14:43) [9]

Спасибо большое буду разбираться, пример отлично работает, осталось разобраться чтобы фон был прозрачный, я думаю разберусь потихоньку


 
Sapersky   (2008-03-13 16:01) [10]

Прозрачный фон в примере должен быть (включается DXOverlay.SetSrcColorKey), но практически его наличие зависит от видеокарты. На Radeon 9000 - есть, на интегрированной в i915 - нет (хотя она пишет в OverlayCaps, что умеет src color key).


 
PMak ©   (2008-05-15 18:22) [11]

Спасибо Sapersky, код работает на Ил-2. но уперся в проблему прозрачного фона при использовании видеокарт GeForce, на АTI все идеально. В статье говорится что пример работал на GeForce 2MX400, но я не смог сделать фон прозрачным. Реально побороть данную проблему или нет?


 
Sapersky   (2008-05-16 00:03) [12]

В статье говорится что пример работал на GeForce 2MX400

Это про тот пример, который вместе со статьей идёт. Там несколько другая функция используется (destination color key). А source color key, который нужен для прозрачного фона, на GeForce"ах тогда не было. Если и сейчас нет - значит, не судьба.



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

Форум: "Media";
Текущий архив: 2011.03.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.003 c
15-1290424828
stas
2010-11-22 14:20
2011.03.06
Хорошая книга по XCode


1-1248514978
ford
2009-07-25 13:42
2011.03.06
Отследить изм-е позиции слова в TRichEdit при изм-ии раз-ра кнтрл


15-1290866571
VLK32
2010-11-27 17:02
2011.03.06
Очередной велосипед


15-1290852684
Чайник
2010-11-27 13:11
2011.03.06
Удалить файл


3-1246532222
Дмитрий Белькевич
2009-07-02 14:57
2011.03.06
Out of memory в результате фетча большого числа записей.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский