| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > у BitBlt заметена scanline. Где раздобыть |
| Автор: MoZy 23.2.2007, 20:00 |
| Я пишу игру на GDI. Возможно ли внедрить какие-то другие библиотеки, функции сильно не перестраивая проект? Не хочется переходить на DirectDraw. Проблема только в скорости вывода бэк буфера на экран. Оч некрасиво смотрица, когда идут какие-то полосы или даже волны. Или может нужно что-то приделать, чтоб все робило?? |
| Автор: Earnest 24.2.2007, 18:48 |
| Кто же его знает, чего ты там напрограммировал и чем буфер на экран выводишь... Может, по точкам? К быстроте BitBlt пока претензий не было. Полосы и волны могут быть визуальным эффектом, если например сначала стирать, потом копировать или что-то в этом роде. |
| Автор: MoZy 24.2.2007, 19:18 |
| Earnest, кто кто.. я знаю. Каждая новая картинка выводится поверх старой. Одна большая. Кстати, даже в паинте, когда скролл двигаешь (скриншот например и еще под лупой), то теже волны идут, что и у меня. Для наглядности закрась половину черным и половину белым (левую и правую). Потом горизонтально скролом подвигая. Там вообще ступеньки будут. А паинт точно на GDI сделан |
| Автор: MoZy 5.3.2007, 21:44 |
| Earnest, ты конечно же все поняла. Я написал игру, карта которой располагается на большом 48битном дибе в десять раз превосходящем размеры экрана. И чтобы двигаться по карте я открываю Paint через Калькулятор и начинаю перерисовку всей битмапы с помощью AlphaBlt в три захода и тут же делаю UpdateWindow, чтобы не так сильно на WM_SCROLL'е все мигало. А после всего этого я запускаю командную строку с параметром CLS и REBOOT, чтобы уж наверняка экран очистился. А вот о квадратиках я совсем забыл. Теперь вместо одной линии я буду видеть несколько! это же так здорово и не будет бросаться в глаза. Юзер подумает, что это часть ландшафта и конечно же влюбится в мою игру! |