Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Overlay ????


Автор: Tsukasa 17.8.2009, 12:45
Имеется вопрос требуется или конкретный пример или ссылку на материал
Google и так уже давно юзаю но пока не срослось или я недопонимаю

Смысл прост - Требуется наложить свой дополнительный интерфейс поверх любой программы которой потребуется (в частности конкретно интересует наложение поверх полно экранных приложений(вероятно игр))
подобный интерфейс наблюдается в сервисе Steam от небезызвестной Valve но насколько я понимаю там просто используется прослойка и все приложения имеют дополнительный код для интерфейса..... в общем есть пища для ума...

Надеюсь на скорый ответ а пока ушел шерстить дальше.

Также возникла интересная мысль использовать Стимовскую библиотеку GameOverlayRenderer.dll мож и получится что, пока не разбирался =/ ...

Автор: Tsukasa 18.8.2009, 22:04
Хорошо, Вопрос наводящий.....

Для реализации подобной задумки необходимо использовать DX \ OGL или достаточно GDI+ 
Если придётся реализовывать в DX \ OGL , то как следует работать? (Нужноли будет постоянно переключать режимы(в смысле в приложением использующим DX работать в DX и наоборот или же достаточно одного режима.)) smile 

Автор: Alexeis 18.8.2009, 22:39
Tsukasa, насколько я помню эта функция есть в DirectDraw. Вывод в оверлей.

Автор: Tsukasa 19.8.2009, 07:31
Вероятно, прост почему появился вопрос, Стимовский вариант работает насколько я понял в OGL т.к. незнаю каким образом (т.к. она не обнаружена в комплете) но анализатор выдаёт что используется у них именно OGl вот и заинтересовался, а так как пишу в CG rad 2009 Delphi, то тут вопрос нормального подключения DX встаёт остро, т.к. я нашел адаптацию  заголовков SDK для 2009го только совместимые с jedi (ох и намаялся....), и соответственно как это всё подключить корректно для меня составляет достаточно занятную историю.... вот как-то так smile  ..........

да и для изучения OGL полегче (вариантов куча, и кстати адаптацию о5 рыскать придётся =( .... обижен..... т.к. юникод много полезнее.....)

а в DD вроде чтот было подобное....... пока для разбора статейку старую листаю.... 
http://www.delphimaster.ru/articles/directx/index.html

Автор: Alexeis 19.8.2009, 09:24
  На счет заголовоков самое свежее тут http://www.clootie.ru/ . Адаптация производиться просто. Как правило такие заголовки имеют дефайны. Т.е. в зависимости от версии нужно подключать разные куски кода. Если вдруг компилятор дает ошибку, то не нужно волноваться, скорее всего достаточно в опциях проекта включить дефайн открывающий соседний код и закрывающий текущий. Дефайн можно включить и локально для текущего модуля директивой {$define <имя дефайна>} или же наоборот отключить при помощи {$undef <имя дефайна>}. Не стоит править модули руками. Вы наверняка пропустите какое-нибудь место. Как правило все уже продумано за нас. Бывает что заголовки адаптированы максимум для Delphi7, но если оно работает для Delphi7 то на 99% что будет работать и для Delphi 2007, так что достаточно объявить дефайн для Delphi7 и все будет правильно компилироваться. Для Delphi 2009 нужно проверять не используются ли типы String / PChar. Возможно придется в начале каждого модуля заголовка ставить  {$undef unicode} или же сделать автозамену 
PChar -> PAnsiChar 
Char -> AnsiChar 
String -> AnsiString

После таких замен заголовки должны работать как в Delphi 2007.

Автор: Tsukasa 19.8.2009, 12:02
Спасибо за направление, осталось ток научится работать c DX, но этому должны обучить книги благо уже нашел несколько..

Чесно говоря забыл о такой простой вещи
PChar -> PAnsiChar 
Char -> AnsiChar 
String -> AnsiString

Забегался......
Но насколько понимаю - если использовать модули работающие с jedi то типы подменяются как раз за счёт jcl и работа должна осуществлятся за счёт изменений в jcl или я чёт недопонимаю и грабли все равно могут лежать не там ?

Пардон за флуд на форуме, проверять все догадки некогда поэтому приходится вначале собирать багаж теории =(... обычно вначале пробую по литературе - ругаю писателя литературы, нахожу грабли и адаптирую.... после чего занимаюсь оптимизацией...... ну а после иногда и сам чё нить типа мануала пишу - но вот данная тема для меня нова да и времени как назло нету.

(также пардон за кривопись.... последние пару суток толком не спал =( .)

Автор: Alexeis 19.8.2009, 14:47
Цитата(Tsukasa @  19.8.2009,  11:02 Найти цитируемый пост)
Забегался......
Но насколько понимаю - если использовать модули работающие с jedi то типы подменяются как раз за счёт jcl и работа должна осуществлятся за счёт изменений в jcl или я чёт недопонимаю и грабли все равно могут лежать не там ?

  На сколько я помню проект jedi закрылся до появления 2009й, так что оригинальные заголовки от jedi скорее всего будут с неправильными типами. Другое дело если использовать обновленные заголовки http://www.clootie.ru/delphi/DX100/Clootie_DirectX10.zip там уже везде AnsiChar и PAnsiChar так что под 2009ю должно работать сразу

Автор: Tsukasa 19.8.2009, 19:59
Проэкт Jedi может и закрылся оффициально теми кто его поддерживал..., но его адаптировала насколько я понял сама Embarcadero, т.е. версия для 2009й делфи существует (d 12). (http://jvcl.delphi-jedi.org)

А проблема ещё в том что я не могу использовать DX10..... в виду ряда ограничений.
И я буду надеяться что все заголовки будут нормально работать, а вообще большое спасибо - помогли не боятся и завтра начну ставить первые эксперименты (т.к. для того что задумал придётся ещё несколько категорий выучить =) Хотя данный вопрос оставлю открытым.)

Автор: Alexeis 19.8.2009, 20:55
Цитата(Tsukasa @  19.8.2009,  18:59 Найти цитируемый пост)
А проблема ещё в том что я не могу использовать DX10..... в виду ряда ограничений.

  Так оно же все включает себя. 10й directx включает 9/8/7 для совместимости. Вероятнее всего эти заголовки можно использовать для любого дирктикса (если только их искусственно не урезали).

Автор: Tsukasa 19.8.2009, 21:07
Цитата(Alexeis @  19.8.2009,  20:55 Найти цитируемый пост)
Так оно же все включает себя. 10й directx включает 9/8/7 для совместимости. Вероятнее всего эти заголовки можно использовать для любого дирктикса (если только их искусственно не урезали). 


Занятненько  smile возмём на заметку.
И проверим

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)