Гость Deniska Опубликовано 28 октября, 2014 Поделиться Опубликовано 28 октября, 2014 Здравствуйте!Мне нужно реализовать дублирование игры на два монитора, подключенных к одному компьютеру. Я мог бы воспользоваться какими-то готовыми программами, но задача состоит в том, чтобы дублирование происходило автоматическе при запуске игры. Поэтому я решил написать свою программу, которая будет инжектить dll в процесс игры. После чего, сама библиотека, создает поток, в котором создается дополнительное окно на втором мониторе, куда и нужно параллельно передавать картинку из игры. В общем, я написал простейший загрузчик, написал ту часть библиотеки, в которой создается дополнительное окно и написал часть, в которой подменяется оригинальная функция Present (спасибо Кенгу за видео уроки). Далее у меня начались проблемы, если при вызове подставной функции Present, делать два вызова к оригинальной Present и передавать хендл сначала одного, потом другого окна - то так хорошо работает только в том случае, когда приложение в оконном режиме, если игра в полноэкранном режиме, то в основном окне начинается рябь, а в дополнительное окно картинка вообще не выводится. Так как я так и не смог победить дублирование в полноэкранном режиме, а решил, что пусть будет хотя в оконном. Но и тут появилось две проблемы, дело в том, что игра изначально запускается в полноэкранном режиме и в настройках это нельзя изменить, перейти в оконный режим можно только по нажатию Alt+Enter. А вторая проблема, то что после перевода игры в оконный режим, основное окно игры центрируется между двумя мониторами и его не удается перенести winapi функциями (просто начинает все виснуть). Друзья, подскажите пожалуйста, может кому приходилось решать подобные вопросы, у меня опыта с DirectX нет, есть неплохой опыт С++. Основная моя задача - это дублирование игры на второй монитор, буду рад любой помощи, любым ссылкам (хотя я весь инет облазил) и любым комментариям. Спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 28 октября, 2014 Поделиться Опубликовано 28 октября, 2014 Эмм. Поправь меня, если я не прав, а чем виндовое дублирование экранов не угодило? Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Deniska Опубликовано 28 октября, 2014 Поделиться Опубликовано 28 октября, 2014 Дело в том, что в силу технических особенностей у мониторов разная ориентация - у одного альбомная, у другого портретная. Из-за этого стандартное дублирование не работает. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 28 октября, 2014 Поделиться Опубликовано 28 октября, 2014 В настройках видяхи можно же масштабирование на нестандартном разрешении делать. Впрочем, не уверен, что это поможет. Впервые сталкиваюсь с такой ситуацией, что мониторы в разных ориентациях. А развернуть его никак? Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Deniska Опубликовано 28 октября, 2014 Поделиться Опубликовано 28 октября, 2014 Нет, развернуть возможности нет. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения