Главная страница
    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.47 MB
Время: 0.003 c
2-1292567745
RUu
2010-12-17 09:35
2011.03.06
еще раз по поводу соответствия типов в условии


15-1290872112
Unknown_user
2010-11-27 18:35
2011.03.06
DCC32 и Turbo pascal


15-1290343634
istok
2010-11-21 15:47
2011.03.06
favicon...


3-1253703164
ganda
2009-09-23 14:52
2011.03.06
Хранимые процедуры и внешние файлы


3-1253799297
N/O
2009-09-24 17:34
2011.03.06
vopros po TClientDataSet





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