![]() |
"FastImage"+"Alt+Tab"="MAV"
вступление:
1) надеюсь все знают эту полезнейшую либу. 2) надеюсь те, кто юзает, также знают что чем меньше StartDraw()/EndDraw() тем лучше. в идеале вообще достаточно двух, StartDraw() после рендера и EndDraw() перед отображением (flip) собственно проблемка: если приложение свернуть Alt+Tab, Аккорд, Win, или еще каким угодно способом (включая системные сообщения, типа пропало соединение с сетью, соединить снова?), то может случиться такая аказия, что свернуто будет именно внутри етих, хм, операторных скобок. При возвращении в игру вылезает его величество MAV, оно и понятно, теряется инфа из бэк/фронт буферов. чо делать? собственно с необходимостью свернуть приложение я могу разделаться просто - написать большими, красными буквами "Сворачивать игру только в паузе", а в паузе что нибудь придумаю. но вот что делать с системными сообщениями, которые насильно сворачивают игру? |
Ответ: "FastImage"+"Alt+Tab"="MAV"
перехватывать их:-D. Просто ловить нажатие клавиш, например если мы нажали alt+tab, то переключить игру в меню пауза, а там ты уж реши как нибудь :). Ты случайно не пользуешься версией fastimage_1_61a ?, вроде именно там вылетает МАВ, попробуй поставить 1.6 версию, там кажись норм.
|
Ответ: "FastImage"+"Alt+Tab"="MAV"
Перед началом цикла отрисовки (StartDraw()) ловить потерю девайса, после чего запретить отрисовку.
|
Ответ: "FastImage"+"Alt+Tab"="MAV"
не поможет.
MAV происходет при отрисовке и потерянном девайсе. как вариант отлавливать потерю девайса перед каждой отрисовкой, но будут тормоза. |
Ответ: "FastImage"+"Alt+Tab"="MAV"
Дык я о том же говорю...
Иначе никак. Стабильность но тормоза или скорость но иногда с МАВ-ами...=( |
Ответ: "FastImage"+"Alt+Tab"="MAV"
а проверять имеет ли окно фокус ? ... хз если честно ...
в идеале надо перехватывать системные сообщения |
Ответ: "FastImage"+"Alt+Tab"="MAV"
мда. это не есть хорошо... а что автор сего замечательного творения по этому поводу думает? кто-нить узнавал?
|
Ответ: "FastImage"+"Alt+Tab"="MAV"
Цитата:
|
Ответ: "FastImage"+"Alt+Tab"="MAV"
jimon, да, лучше бы как нибудь заставить неотдавать окно фокус.
проблема с alt+tab не так критична, говорю же, напишу большими буквами - сворачивать окно только в паузе. а вот системные сообщения - ето проблемка. импер, ето я знаю, но ета фишка не поможет. |
Ответ: "FastImage"+"Alt+Tab"="MAV"
Ну установи тогда на окно блица коллбэк и делай его поверх всех (HWND_TOPMOST) с помощью WINAPI - SetWindowPos. Заодно можешь отправлять приложение поспать когда оно теряет фокус.
Исходник на PureBasic: Код:
Global BlitzWindow.l Код:
Graphics3D(800, 600, 32, 2) |
Часовой пояс GMT +4, время: 00:22. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot