Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Двойная буферизация и функции получения времени

13K
11 апреля 2008 года
Jawello
11 / / 11.04.2008
1.как можно осуществить двойную буферизацию в паскале.сильно раздражает моргание картинки при анимации.(если есть варианты избежать моргания без двойной буферизации,буду рад услышать).

2.скольо раз в секунду желательно прорисовывать на экране картинку?и что можно сделать,если картинка полностью не успевает прорисоваться на экране(много объектов,те которые прорисовываються первыми видно,которые последние практически нет).

3.какие в паскале существуют стандартные функции получения времени или в стандартных модулях идущие вместе с Turbp Pascal 7_1?(процедура gettime(h1,h2,sec,psec) какая-то тормазнутая,к тому же для анимации приходиться переводить все в миллисекунды).

за ранее спасибо!
1.9K
11 апреля 2008 года
andriano
474 / / 10.01.2008
1. Я так понимаю, имеется в виду исключительно модуль Graph? (это к тому, что в Паскале можно раотать с графикой ничуть не хуже, чем в С или Ассемблере)
Двойную буферизацию можно сделать и в Ggraph, нужно только подобрать видеорежим, в котором было бы минимум две видеостраницы. Но, вообще говоря, те видеорежимы, что предлагает модуль Graph для динамичной графики не подходят совершенно.

2. Столько, сколько нужно. Другое дело, что рисовать нужно не в видимую, а в теневую страницу, и только по завершении работы показывать ее на экране. А пока показываешь, рисовать в это время в другой теневой странице следующее изображение.

3. Если речь идет о DOS/BIOS, самый быстрый способ - чтение 4-байтовой переменной BIOS, расположенной по адресу meml[$40,$6c], которая обновляется 18.2 раза в секунду.
13K
11 апреля 2008 года
Jawello
11 / / 11.04.2008
спасибо.

1.про этот способ двойной оферизации в graph я слышал,но не много не понимаю как показывать, то одну то другую часть,и какой видео режим подобрать и как это сделать.если есть исходный код,какого нить примера было бы вообще отлично(а если с коментариями то просто божественно). Расскажи,пожалуйста, по подробнее о том, как работать с динамической графикой в pascal'е более продуктивным способом,нежели чем просто использовать модуль graph.

3.ух...адрес конечно хорошо,но моих знаний пока не хватает чтобы к нему обратиться.Я понмю где то видел код где обращались к этому адресу,надо удет посмотреть.

еще раз спасибо.
1.9K
11 апреля 2008 года
andriano
474 / / 10.01.2008
1. Примеров для Graph у меня нет. Не пользуюсь. Видеорежим должен быть такой, чтобы объем видеопамяти, приходящейся на одну страницу, не превышал 128К. Кажется, можно 640х350х16 цветов, но как его инициализировать, я уже не помню.
Из своих наработок могу предложить http://www.osp.ru/pcworld/2001/07/161910/ и далее - там более десятка статей почти в каждом номере более чем за год.

3. Я и привел код обращения (назвав его адресом). Полностью:
Counter := meml[$40:$6c].
Кстати, в одной из статей цикла я тоже об этом рассказываю. Ссылка на конкретную статью: http://www.osp.ru/pcworld/2002/01/162754/
325
16 апреля 2008 года
Franky
723 / / 10.08.2005
640х400, но поддерживался только на специфических видеокартах.

Топикстартеру предлагаю писать или формировать картинку в ОЗУ, скорость примерно та же, что с видео. Прорисовка будет медленее...
Если с графикой работаешь для себя - могу подкинуть свои когда-то писанные ф-ции на АСМ, там работа с графикой ок. 800х600х256, переменная запись в банки памяти, работа с оперативой.

Стучи в личку, если что, здесь бываю редко
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог