Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > высокоскоростной вывод на экран |
Автор: who_i 13.2.2007, 00:15 | ||
Здраствуйте, форумчане! Я C++ только недавно начал изучать. Вот такой вопрос: нету ли каких-небудь API-шных (или других) функций, чтобы ускорить вывод на экран в консоли MS-DOS? При выполнении кода:
При каждой итерации цикла for(int z=0;z<3;z++) сильно мерцает экран. Можно ли это как-нибудь исправить? ![]() Заранее спасибо! |
Автор: SergeCpp 13.2.2007, 00:54 | ||
Вот одна функция ![]() ![]()
Бегает шустренько так ![]() P.S. Программа та была консольной изначально, потом переделана, но консольная часть оставлена и запустить её в ход можно. |
Автор: Dray 13.2.2007, 00:56 |
Для консоли вряд ли. А так быстрый вывод - это DirectX/OpenGL ![]() Добавлено @ 00:58 Да, кстати! Здесь всё-таки поточнее надо. |
Автор: Anikmar 13.2.2007, 09:22 |
Можно переключить консоль в текстовый режим (Alt+Enter) - будет шустрее |
Автор: apook 13.2.2007, 10:21 |
Надо бросать символы напрямую в видеопамять монитора |
Автор: JackYF 13.2.2007, 15:21 |
Ага... в консоль-окошко. Под Виндой. Да и под Линухами тоже. ![]() Не даст тебе никакая ОС такого права, кроме как ДОС, конечно. |
Автор: Любитель 13.2.2007, 15:50 | ||||
Да тут даже не в правах дело - любая ося работает в графическом режиме. В том числе при загрузке чисто на консоль (и винда, и линукс). Добавлено @ 15:52
В std::cout есть встроенная буфферизация. Вот только std::endl в цикле - это зря. std::endl это тоже, что и
последнее нам в цикле не особо надо. |
Автор: zkv 13.2.2007, 16:56 | ||
да, вы совершенно правы, позабыл ![]()
да, тоже в точку, ладно, в следующий раз попробую подумать сначала, прежде чем советовать ![]() |
Автор: who_i 13.2.2007, 16:59 | ||
Std::endl я заменил на '\n'-ничего
перешел в оконный режим-ничего. Неужели нету таких функций? Вот например в игре Колобок, и в полноэкранном режиме, и в оконном все так гладко. ![]() А у меня это мерцание-аж глаза болят. |
Автор: Любитель 13.2.2007, 17:02 |
Ну попробуй через WinAPI - двигаем курсор, выводим символ. Без рендеринга всей сцены так сказать ![]() |
Автор: Rockie 13.2.2007, 17:29 | ||||
who_i, а что-то должно быть. '\n' это просто символ, а при endl происходит много чего, как-то создается объект, разрушается, и если я прав то плюс еще сбрасывается буфер Добавлено @ 17:33 да, так и есть
|
Автор: MAKCim 13.2.2007, 17:36 | ||
а если с тыла подойти? ![]()
в Linux в отличие от Window$ есть нормальная не GUI консоль, которая работает в текстовом режиме |
Автор: azesmcar 15.2.2007, 16:39 | ||
Ну так он и будет мелькать...а чего же ты хочешь??
Ты же после каждой итерации очищаешь консоль. Добавлено @ 16:42 Если я не ошибаюсь cls заполняет весь экран пробелами тем самым очищая экран. Если это тебе так уж нужно очищай вручную..ту часть которую используешь. |
Автор: Любитель 16.2.2007, 12:23 |
Ага с фонами, задаваемыми где-то в текстовых конфигах ![]() |