![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| АлексейX86 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.2.2013 Репутация: нет Всего: нет |
Доброго времени суток.
Я - начинающий программист на С++ , пишу консольный игровой движок на С++ +WinAPI , и вот проблема с выводом графики. Консоль отрисовываеться ОЧЕНЬ медленно , почему - не могу понять. Алгоритм отрисовки работает через WinAPI (то есть без всяких cout , system("cls") , и т.д.) - при полной прорисовке консоли : во-первых сама консоль медленно отрисовываеться , во-вторых видно как перерисовывается экран (на волну похоже). Но я видел консоли , алгоритм отрисовки которых работает тоже на WinAPI , но скорость отрисовки в разы больше. Как можно сделать быструю прорисовку/отрисовку консоли на С++ WinAPI? Вот мой код : (алгоритм выводит на всю консоль случайные символы , частота отрисовки неограничена)
Спасибо за помощь. |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
||||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Сделайте у себя копию того, что хотите вывести и выводите потом 1 вызовом WriteConsoleOutput. Многочисленные вызовы FillConsoleOutput* для заполнения всего 1го элемента - это очень и очень медленно
|
|||
|
||||
| АлексейX86 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.2.2013 Репутация: нет Всего: нет |
xvr , спасибо за обяснение , но допустим у меня в игре есть ландшафт - массив char'ов , и у каждого этого char'а должен быть свой цвет в консоли , а я так понял что WriteConsoleOutput записыват прямоугольник чаров одного цвета :
Вот пример такого ландфафта : (рисовал не я) http://s1.ipicture.ru/Gallery/Viewfull/21462127.html Или я не прав насчет WriteConsoleOutput? Это сообщение отредактировал(а) АлексейX86 - 8.2.2013, 18:57 |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 5 Всего: 64 |
Параметр
CONST CHAR_INFO *lpBuffer это массив структур. Как вы сами указали, каждая такая структура содержит символ и его атрибуты. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| АлексейX86 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.2.2013 Репутация: нет Всего: нет |
Спасибо всем , разобрался.
|
|||
|
||||
![]()
|
| Правила форума "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. |