Не совсем понятно: этот код просто не даёт курсору выйти за пределы игорого экрана? Или после restore/resize не даёт курсору «рассихронизироваться» с игровым (как в oblivion, например)?
Просто лично мне до сих пор не удалось заставить fullscreen-приложение вести себя нормально на одном мониторе, когда я перевожу курсор на второй монитор и что-то там нажимаю (winamp, например 🙂 ).
#2
15:13, 7 янв 2011
Ето для самой игръ, да.
А для разработки охота перевести на второй монитор И чтобъ игра не свернулась.
Ето можно сделать, запомнив адрес процедуръ обработки сообщений окошка перед CreateDevice(), потом после (так как Direct3D рантайм ставит свой обработчик поверх нашего) и поставить новъй обработчик, которъй в случае WM_ACTIVATEAPP просто передает сообщение нашему старому обработчику, все остальнъе — тому что после CreateDevice() взяли.
Таким образом отключаем Direct3D рантайм из обработки етого мессиджа и все работает.
#3
ТЕБЯ ТОЖЕ ДОСТАЛ ЭТОТ БЕЛЫЙ КУРСОР НА ЭКРАНЕ КОМПЬЮТЕРА? #shorts
16:41, 7 янв 2011
~X~
просто не дает выйти за пределы экрана.
>Просто лично мне до сих пор не удалось заставить fullscreen-приложение вести себя нормально на одном мониторе, когда я перевожу курсор на второй монитор и что-то там нажимаю (winamp, например 🙂 ).
да, еще иногда хочется быстро альттабнуться в приложение на другом монике и что-нибудь там сделать, потом вернуться и чтобы без сворачивания.
пока ни в одной fullscreen игре не видел подобного.
Z
зачем дебажить в фулскрине?
а в релизе ты применял описанный способ?
а devicelost и потеря ресурсов,может произойти в твоем способе? (я не знаю, как генерится devicelost)
напиши хинт 🙂
#4
18:17, 7 янв 2011
vlob
>зачем дебажить в фулскрине?
Чтобъ дебажит фулскрин. Чтобъ имея 2 монитора, воспользоватся максимально одним из них.
Device lost произходит.
#5
18:55, 7 янв 2011
Хм. Я делаю фулскрин игры для многомониторных конфигураций и у мну ничего не сворачивается при клике за пределами окна без всяких извратов. Я чего-то не так делаю.
#6
19:08, 7 янв 2011
#7
19:23, 7 янв 2011
Так вы про DX. Надо было догадаться. я на OGL пишу. Сорри за офтом. В теме не увидел упоминания DX.
#8
23:28, 7 янв 2011
>Таким образом отключаем Direct3D рантайм из обработки етого мессиджа и все работает.
А это идея! спасибо. А нет ли у кого исходника directx-обработчика окна, или типа реверса?
Кстати я правильно понимаю что в таком случае если мы переключимя например на блокнот который тоже на втором мониторе, то мы его не увидим?
Как заблокировать курсор мыши на втором мониторе
Я уже много лет работаю на двух мониторах. Это удобно, особенно когда мне надо объединять в один текст большой объём информации. Но иногда мне необходимо сосредоточиться только на одном мониторе, и тут встаёт вопрос, как полностью отключить второй экран, включая движение мышки на нём.
Курсор выходит за рамки minecraft | КАК ИСПРАВИТЬ
Dual Monitor Tools — программа с открытым исходным кодом, позволяющая задать различные хоткеи для действий с экранами на многомониторных системах. В том числе и заблокировать курсор мыши.
- Launcher — настройка быстрого запуска приложений. С ее помощью вы можете заранее определить на каком дисплее будет открываться та или иная программа, запускать избранные приложения с нескольких клавиш и указать размеры окна и положение на любой из ваших мониторов.
- Snap — эта утилита может сделать скриншот, захватить текущее изображение на основном мониторе и отобразить его на дополнительном.
- Swap Screen — быстрое перемещение активных окон с одного монитора на другой с помощью горячих клавиш. Позволяет заранее настроить положение окна и ограничить движение мыши между мониторами.
- Wallpaper — управление обоями на мониторах. Позволяет установить разные картинки на каждом из мониторов, управлять положением каждого изображения, масштабировать его и перемещать по экрану.
Dual Monitor Tools
Спасибо, что читаете! На данный момент большинство моих заметок, статей и подборок выходит в telegram канале «Левашов». Обязательно подписывайтесь, чтобы не пропустить новости мира ИТ, полезные инструкции и нужные сервисы.
Респект за пост! Спасибо за работу!
Хотите больше постов в блоге? Подборок софта и сервисов, а также обзоры на гаджеты? Сейчас, чтобы писать регулярно и радовать вас большими обзорами, мне требуется помощь. Чтобы поддерживать сайт на регулярной основе, вы можете оформить подписку на российском сервисе Boosty. Или воспользоваться ЮMoney (бывшие Яндекс Деньги) для разовой поддержки:
Заранее спасибо! Все собранные средства будут пущены на развитие сайта. Поддержка проекта является подарком владельцу сайта.
Telegram
Your Browser Does Not Support iframes!
Последние
Рубрики
Подписаться
Соединить с D
Соединить с D
0 комментариев
Inline Feedbacks
View all comments
СЧЕТЧИКИ
РЕКЛАМА И ДОНАТЫ
Социальные сети
Использование материалов разрешается с активной ссылкой на levashove.ru.
Источник: levashove.ru
Как предотвратить смещение курсора на другой монитор во время игр
Большинство игр ограничивают ваш курсор окном игры, если вы не нажмете Alt + Tab. Но иногда, если у вас несколько мониторов, вы получаете игру, которая позволяет вашему курсору «перемещаться» на другой экран во время игры. Вы можете предотвратить это с помощью бесплатного инструмента Cursor Lock.
Cursor Lock – это небольшая удобная утилита от разработчика, которая называет себя Snake, которая позволяет вам «привязать» курсор к определенной программе, чаще всего к игре. Это выглядит сложно, но в большинстве случаев им чрезвычайно легко пользоваться.
Сначала загрузите Cursor Lock и установите его так же, как обычную программу Windows. Затем запустите приложение «Настройка блокировки курсора».
В окне Cursor Lock происходит много всего, но для многих игр это должно быть очень просто. Просто установите флажок «Открыть программу» и перейдите к EXE-файлу игры. Например, в моем случае я направил его в EXE-файл Metro: Last Light, который находится в моей папке Steam по адресу:
C: Games Steam steamapps common Metro Last Light MetroLL.exe
Затем просто нажмите кнопку «Создать ярлык» в нижней части окна.
Это создаст ярлык, где вы хотите, чтобы запустить эту игру с включенной блокировкой курсора. Для меня это было все, что мне нужно, чтобы держать курсор во время игры в Metro: Last Light.
В других случаях вам может понадобиться добавить несколько аргументов. Для DOOM я обнаружил, что должен был указать «Открыть программу» на моем Steam.exe , «Заблокировать программу» на EXE DOOM и «Открыть программные аргументы» на -applaunch 379720 , где 379720 – идентификатор приложения для рассматриваемой игры.
(Если вы не знаете, какой у приложения идентификатор игры, просто зайдите в Google игру и перейдите на ее страницу в Steam Store – номер в конце URL-адреса – это его идентификатор, как показано ниже.)
Блокировка курсора имеет множество дополнительных функций, которые могут помочь, если вышеуказанные параметры не работают. У Снейка есть список игр, в которых подтверждена работоспособность, а также варианты, которые нужно проверить, включая Starcraft, The Witcher и Fallout: New Vegas.
Видео с инструкциями Снейка также демонстрирует некоторые примеры того, что вы можете попробовать, если игры нет в списке, так что проверьте это ниже.
Возможно, вам придется поиграть с ним, чтобы заставить его работать должным образом для вашей конкретной игры, но, по моему опыту, вышеупомянутые два варианта работали как шарм. Я просто запускаю эту игру с помощью ярлыка, который я сделал в Cursor Lock, и все это просто ужасно.
Источник: tutorybird.ru