![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| MoZy |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 4.6.2006 Репутация: 1 Всего: 0 |
Я пишу игру на GDI. Возможно ли внедрить какие-то другие библиотеки, функции сильно не перестраивая проект? Не хочется переходить на DirectDraw. Проблема только в скорости вывода бэк буфера на экран. Оч некрасиво смотрица, когда идут какие-то полосы или даже волны. Или может нужно что-то приделать, чтоб все робило??
--------------------
Experimentia est optima rerum magistra |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Кто же его знает, чего ты там напрограммировал и чем буфер на экран выводишь... Может, по точкам?
К быстроте BitBlt пока претензий не было. Полосы и волны могут быть визуальным эффектом, если например сначала стирать, потом копировать или что-то в этом роде. -------------------- ... |
|||
|
||||
| MoZy |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 4.6.2006 Репутация: 1 Всего: 0 |
Earnest, кто кто.. я знаю. Каждая новая картинка выводится поверх старой. Одна большая. Кстати, даже в паинте, когда скролл двигаешь (скриншот например и еще под лупой), то теже волны идут, что и у меня.
Для наглядности закрась половину черным и половину белым (левую и правую). Потом горизонтально скролом подвигая. Там вообще ступеньки будут. А паинт точно на GDI сделан Это сообщение отредактировал(а) MoZy - 24.2.2007, 19:21 --------------------
Experimentia est optima rerum magistra |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Тоже мне, нашел что в пример приводить - Paint!
Скролл можно по разному реализовать. И работу с растрами тоже. Если растр большой - в десятки раз больше экрана, то чего удивляться - это уже издержки работы с памятью - в стандартном битмапе она по строкам. В этом случае его неплохо кэшировать - например, порезать на квадраты.
У меня так не будет... Ты забыл написать, что скролл у тебя полной перерисовкой реализуется. Для быстрого скрола используй ScrollDC или ScrollWindow, и перерисовывай только невалидные кусочки. И проследи, чтобы окно никто не стирал. Поверь, вывод растра можно организовать очень быстро! И без всяких мельканий. Вот с большим вектором могут быть задержки... -------------------- ... |
|||
|
||||
| MoZy |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 4.6.2006 Репутация: 1 Всего: 0 |
Earnest, ты конечно же все поняла. Я написал игру, карта которой располагается на большом 48битном дибе в десять раз превосходящем размеры экрана. И чтобы двигаться по карте я открываю Paint через Калькулятор и начинаю перерисовку всей битмапы с помощью AlphaBlt в три захода и тут же делаю UpdateWindow, чтобы не так сильно на WM_SCROLL'е все мигало.
А после всего этого я запускаю командную строку с параметром CLS и REBOOT, чтобы уж наверняка экран очистился. А вот о квадратиках я совсем забыл. Теперь вместо одной линии я буду видеть несколько! это же так здорово и не будет бросаться в глаза. Юзер подумает, что это часть ландшафта и конечно же влюбится в мою игру! --------------------
Experimentia est optima rerum magistra |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |