| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Мышка под ДоС и ее совместимость с SVGA... |
| Автор: yOhoOo 23.11.2007, 17:03 | ||
| Здравствуйте кважаемые. Для реализации графической оболочки к проге юзаю VESA. Хотел было добавить мышку, взял готовые куски своего старого кода (для проги работающей при помощи EGAVGA.bgi). Мышка там реализовывалась вот так:
Ну и что то там дальше... Так вот, открыл я для себя что так не пойдет для VESA ибо вылетает тут же из программы в виндоз да ошибку пишет. C чем это связано? Как это лечить? ЗЫ Пробывал вместо VESA юзать готовые SVGA.bgi но результат тот же... |
| Автор: Sartorius 23.11.2007, 17:20 |
| В DOSBox-e запускать не пробовал? |
| Автор: yOhoOo 23.11.2007, 22:39 | ||
Поясни пожалуйста. Это что такое? |
| Автор: MAKCim 23.11.2007, 23:01 |
а если гугл начать использовать? |
| Автор: yOhoOo 24.11.2007, 05:52 | ||
Прочитал про ДосбОкс. А можно еще как нибудь попытатся справится с моей проблемой? Средствами кода например). Не очень бы хотелось таскать за программой этот загрузчик... |
| Автор: bsa 24.11.2007, 11:33 |
| yOhoOo, тогда забудь про VESA и SVGA |
| Автор: yOhoOo 25.11.2007, 23:54 |
| Ход конем... |
| Автор: archimed7592 26.11.2007, 03:37 |
| yOhoOo, ход конем - это пытаться в современность пользоваться прямым доступом к аппаратуре. Ни одно нормальная ОС делать этого не позволяет. |
| Автор: yOhoOo 26.11.2007, 10:55 |
| Все, убедили, пошел качать ДОСбокс... |
| Автор: yOhoOo 29.11.2007, 23:29 | ||||||||||
Гыыы А вот и нет. Я просто тупой, не понял очевидныйх вещей:
как я уже сказал вылетает. А вот так:
Вылеталть не будет. Связанно это с тем, что в SVGA режиме:
А вообще почитайте здесь: http://computers.plib.ru/programming/SVGA/menu.html Так наглядно можно проверить что курсор действительно перемещается:
А общая идея курсора выглядит так:
|
| Автор: sprata 12.9.2008, 06:08 |
| yOhoOo, код который ты кинул это конечно неплохая идея визуализации вручную указателя мыши в режме SVGA. Но она подойдет только для одноцветного заднего фона. Так как ф-ии getimage() и putimage() работают с прямоугольными областями экрана, то реализовать перемещение треугольного курсора по неоднородному фону не удасться, так как незайдействованная в рисовании курсора часть захваченной прямоугольной области будет перемещаться вместе с курсором и тем самым закрывать задний фон. Едиснтвенный выход, используя твою идею, это сделать курсор не треугольным, а прямоугольным. ЗЫ: я сейчас начал делать курсач, и тож хочу в режиме SVGA и с мышей Но с треугольным курсором. |
| Автор: yOhoOo 21.7.2009, 15:50 | ||
Усе норм, тока поменять надо немного. Без ксор пута все. Обычными getimage/ putimage. Берешь, перед тем как рисовать курсор копируешь в переменную скажем FONT_BOX область, где твой курсор будет жить, затем рисуешь курсор. Затем отслеживаешь изменения в регистрах по X, Y координатам. Если нет изменений то ждешь) Если есть рисуешь поверх курсора область снова. Затем копируешь область под новыми координатами в FONT_BOX. И опять курсор рисуешь сверху. Повторять до полного удовлетворения. |