PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Разработка программ

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2011, 19:26   #1
CyberSubaru
Гуру
 
Аватар для CyberSubaru
 
Регистрация: 20.01.2010
Возраст: 43
Город: Владивосток
Регион: 25
Машина: Subaru Impreza GF/GG
Сообщений: 1,064
CyberSubaru has a spectacular aura aboutCyberSubaru has a spectacular aura aboutCyberSubaru has a spectacular aura about
По умолчанию Интересная задачка :-) DirectDraw

Есть программа. Точнее 2 программы. Они обе рисовали через GDI. Одна все время, другая иногда показывала свое окно и тоже там рисовала.
Основную программу переложил в DirectDraw, полноэкранный режим. Теперь показать окно другой программы стало весьма проблематчино.
Как рисовать на сурфейсах созданного в экзешнике DirectDraw из длл это понятно. А вот как такое сделать из другого экзешника?
Т.е. как из одного экзешника рисовать на сурфейсах в другом экзешнике?
Никто таким не заморачивался?
__________________
Subaru Impreza GF H6 BMW Style PROJECT : - постройка.
Было: 2литра / PIII-650/SSD32GB/9.5"/SB X-FI/GPS/3G/OBD2/...
Строю: 3литра / I5-MOBILE/500/12"/SB X-FI/GPS/3G/OBD2/...
pccar
Drive2
-----
Impreza Lite: Allwinner A13 (DNS E76) - Cortex A8 1GHz
http://www.pccar.ru/showthread.php?t=18574

Последний раз редактировалось CyberSubaru; 07.03.2011 в 12:45.
CyberSubaru вне форума   Ответить с цитированием
Старый 06.03.2011, 20:41   #2
Virtual
Гуру
 
Регистрация: 07.11.2009
Возраст: 49
Регион: 02
Машина: Hyundai Accent :)
Сообщений: 1,361
Virtual has a spectacular aura aboutVirtual has a spectacular aura about
По умолчанию

хм....
попробуй начать с получения извне, handle окна куда ты DirectDraw засадил....
рисование в обычных окнах таким макаром прокатывало .... но имхо хлопотно это
проще:
а. обьеденить проги....
если нет возможности то
б. пусть основная прога где фуллскрин.... перехватывает появление чужего окошка и сама его изображение себе в область DirectDraw отрисовывает
(скриншот чужего окна через PrintWindow мона получить )
__________________
Accent + Mystery MMT-8120S+ежик700_2Gssd_798МГц проц
Virtual вне форума   Ответить с цитированием
Старый 06.03.2011, 20:49   #3
awtoap
Гуру
 
Аватар для awtoap
 
Регистрация: 19.09.2009
Возраст: 46
Город: Мелитополь
Регион: Украина
Сообщений: 2,022
awtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to beholdawtoap is a splendid one to behold
По умолчанию

Все элементарно...передавайте из второстепенной проги в основную запрос на выдачу ссылки на интерфейс DirectDraw через оконную функцию(через сообщения винды). Потом с этим интерфейсом работаете также как и из основной проги. Или второй вариант пишите DLLку в которой реализован движок вывода и там с помощью функции так же получаете интерфейс. Эту DLL будут юзать основная и второстепенные проги (аля плагины).
awtoap вне форума   Ответить с цитированием
Старый 07.03.2011, 03:53   #4
CyberSubaru
Гуру
 
Аватар для CyberSubaru
 
Регистрация: 20.01.2010
Возраст: 43
Город: Владивосток
Регион: 25
Машина: Subaru Impreza GF/GG
Сообщений: 1,064
CyberSubaru has a spectacular aura aboutCyberSubaru has a spectacular aura aboutCyberSubaru has a spectacular aura about
По умолчанию

Цитата:
Сообщение от Virtual Посмотреть сообщение
хм....
попробуй начать с получения извне, handle окна куда ты DirectDraw засадил....
рисование в обычных окнах таким макаром прокатывало .... но имхо хлопотно это
проще:
а. обьеденить проги....
если нет возможности то
б. пусть основная прога где фуллскрин.... перехватывает появление чужего окошка и сама его изображение себе в область DirectDraw отрисовывает
(скриншот чужего окна через PrintWindow мона получить )
Какой еще handle окна? :-) ДиректДро рисует напрямую в видеопамять вне зависимости где расположено окно, соотвественно перекрывая результаты всех GDI функций. Делать цикл поиска окна как бы не вариант....

Цитата:
Сообщение от awtoap Посмотреть сообщение
Все элементарно...передавайте из второстепенной проги в основную запрос на выдачу ссылки на интерфейс DirectDraw через оконную функцию(через сообщения винды). Потом с этим интерфейсом работаете также как и из основной проги. Или второй вариант пишите DLLку в которой реализован движок вывода и там с помощью функции так же получаете интерфейс. Эту DLL будут юзать основная и второстепенные проги (аля плагины).
wm_copydata. Знаю. Только один нюанс. Адресные пространства разных процессов разные и во втором процессе указатель на интерфейс, объявленный в первом процессе, будет ссылаться в никуда. Тоже самое с длл, подгружаемой из разных процессов.
__________________
Subaru Impreza GF H6 BMW Style PROJECT : - постройка.
Было: 2литра / PIII-650/SSD32GB/9.5"/SB X-FI/GPS/3G/OBD2/...
Строю: 3литра / I5-MOBILE/500/12"/SB X-FI/GPS/3G/OBD2/...
pccar
Drive2
-----
Impreza Lite: Allwinner A13 (DNS E76) - Cortex A8 1GHz
http://www.pccar.ru/showthread.php?t=18574
CyberSubaru вне форума   Ответить с цитированием
Старый 07.03.2011, 04:33   #5
CyberSubaru
Гуру
 
Аватар для CyberSubaru
 
Регистрация: 20.01.2010
Возраст: 43
Город: Владивосток
Регион: 25
Машина: Subaru Impreza GF/GG
Сообщений: 1,064
CyberSubaru has a spectacular aura aboutCyberSubaru has a spectacular aura aboutCyberSubaru has a spectacular aura about
По умолчанию

Важно то, что программы должны работать раздельно. Впринципе есть идейка.
__________________
Subaru Impreza GF H6 BMW Style PROJECT : - постройка.
Было: 2литра / PIII-650/SSD32GB/9.5"/SB X-FI/GPS/3G/OBD2/...
Строю: 3литра / I5-MOBILE/500/12"/SB X-FI/GPS/3G/OBD2/...
pccar
Drive2
-----
Impreza Lite: Allwinner A13 (DNS E76) - Cortex A8 1GHz
http://www.pccar.ru/showthread.php?t=18574
CyberSubaru вне форума   Ответить с цитированием
Старый 07.03.2011, 09:20   #6
Virtual
Гуру
 
Регистрация: 07.11.2009
Возраст: 49
Регион: 02
Машина: Hyundai Accent :)
Сообщений: 1,361
Virtual has a spectacular aura aboutVirtual has a spectacular aura about
По умолчанию

ну раз обе проги твои, то самое логичное это придумать какой либо апи по обмену данными, а рисовать из двух мест это как одеяло перетягивать .
__________________
Accent + Mystery MMT-8120S+ежик700_2Gssd_798МГц проц
Virtual вне форума   Ответить с цитированием
Старый 07.03.2011, 19:40   #7
CyberSubaru
Гуру
 
Аватар для CyberSubaru
 
Регистрация: 20.01.2010
Возраст: 43
Город: Владивосток
Регион: 25
Машина: Subaru Impreza GF/GG
Сообщений: 1,064
CyberSubaru has a spectacular aura aboutCyberSubaru has a spectacular aura aboutCyberSubaru has a spectacular aura about
По умолчанию

Я ж грю - есть идея как это реализовать. Ток как правило сначала надеешься, что кто-то уже делал подобный ход и есть где слизать :-)))))
__________________
Subaru Impreza GF H6 BMW Style PROJECT : - постройка.
Было: 2литра / PIII-650/SSD32GB/9.5"/SB X-FI/GPS/3G/OBD2/...
Строю: 3литра / I5-MOBILE/500/12"/SB X-FI/GPS/3G/OBD2/...
pccar
Drive2
-----
Impreza Lite: Allwinner A13 (DNS E76) - Cortex A8 1GHz
http://www.pccar.ru/showthread.php?t=18574
CyberSubaru вне форума   Ответить с цитированием
Старый 07.03.2011, 21:30   #8
Virtual
Гуру
 
Регистрация: 07.11.2009
Возраст: 49
Регион: 02
Машина: Hyundai Accent :)
Сообщений: 1,361
Virtual has a spectacular aura aboutVirtual has a spectacular aura about
По умолчанию

сколько подобных задачек возникало.... всегда приходил к выводу что надежней пробрасывать исходные данные.... иль через сообщения иль пайпами... а гуем пусть занимется кто-то один .... кстати такой подход когда источник данных отдельно а гуй отдельно....приводит к универсальности .... нужен гуй пожалуйсто.... не нужен ну и фиг с ним . (вроде гдет валялись наработки с подобной задачкой.... сервис и гуй к нему отдельный.)
__________________
Accent + Mystery MMT-8120S+ежик700_2Gssd_798МГц проц
Virtual вне форума   Ответить с цитированием
Старый 08.03.2011, 05:14   #9
CyberSubaru
Гуру
 
Аватар для CyberSubaru
 
Регистрация: 20.01.2010
Возраст: 43
Город: Владивосток
Регион: 25
Машина: Subaru Impreza GF/GG
Сообщений: 1,064
CyberSubaru has a spectacular aura aboutCyberSubaru has a spectacular aura aboutCyberSubaru has a spectacular aura about
По умолчанию

Плагины то у меня сами рисуют))) Ибо там проще! Передаешь указатель на сурфейс и рисуй! ))
__________________
Subaru Impreza GF H6 BMW Style PROJECT : - постройка.
Было: 2литра / PIII-650/SSD32GB/9.5"/SB X-FI/GPS/3G/OBD2/...
Строю: 3литра / I5-MOBILE/500/12"/SB X-FI/GPS/3G/OBD2/...
pccar
Drive2
-----
Impreza Lite: Allwinner A13 (DNS E76) - Cortex A8 1GHz
http://www.pccar.ru/showthread.php?t=18574
CyberSubaru вне форума   Ответить с цитированием
Старый 02.04.2011, 06:23   #10
CyberSubaru
Гуру
 
Аватар для CyberSubaru
 
Регистрация: 20.01.2010
Возраст: 43
Город: Владивосток
Регион: 25
Машина: Subaru Impreza GF/GG
Сообщений: 1,064
CyberSubaru has a spectacular aura aboutCyberSubaru has a spectacular aura aboutCyberSubaru has a spectacular aura about
По умолчанию

Перешел на D3D :-)
__________________
Subaru Impreza GF H6 BMW Style PROJECT : - постройка.
Было: 2литра / PIII-650/SSD32GB/9.5"/SB X-FI/GPS/3G/OBD2/...
Строю: 3литра / I5-MOBILE/500/12"/SB X-FI/GPS/3G/OBD2/...
pccar
Drive2
-----
Impreza Lite: Allwinner A13 (DNS E76) - Cortex A8 1GHz
http://www.pccar.ru/showthread.php?t=18574
CyberSubaru вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 11:26.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot