Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.84] |
|
Сообщ.
#1
,
|
|
|
Что такое видеостраница? Есть ли такое в паскале?
|
Сообщ.
#2
,
|
|
|
У видео-карты есть своя оперативная память, которая включается в общее адресное пространство доступной памяти компьютера. Всё (грубо говоря), что будет помещено в эту облать памяти, автоматически отрисовывается картой на экране монитора.
Так понятно? А к Паскалю это имеет отношение лишь в том смысле, что эта программа, как и любые другие, может получить доступ к этой памяти - читать и писать туда. |
Сообщ.
#3
,
|
|
|
Кусочек видеопамяти
для Борданд паскаля видеостраницы доступны в режимах ега 640Х360Х16 - 2 используя нестандартный драйвер для режима Х можно: 320Х240Х256 - 3 320Х400 - 2 и т.д лежит тут http://pascal.sources.ru/graph/svga256t.zip процедуры setactivepage setvisualpage пример работы со страницами есть в bgidemo.pas для тмт паскаль возможно использование видеостраниц в свга режимах от 640Х480 и выше |
Сообщ.
#4
,
|
|
|
2 vot:
Ну вот ;D Опять я не успел 1-й ответить :'( |
Сообщ.
#5
,
|
|
|
Поторопился отправить
Эта видео-память состоит из нескольких частей (страниц), из которых лишь одна отображается на экране. Это удобно. Пока из одной страницы идет отрисовка на экран, мы можем продолжать рисовать на другую, невидимую, страницу. А когда заполнение страницы завершено - просто "переключить" страницу, т.е. сделать активной (отображаемой) ту страницу, на которую мы чего-то напихали.... Пока вторая страница отображается, мы "запихиваем" следующую картинку в другую невидимую страницу, потом опять переключаем страницу и т.д. |
Сообщ.
#6
,
|
|
|
А конкретнее в каком месте программы bgidemo.pas есть пример использования страниц. Или, если можно, привидите фрагмент кода, где это реализуется.
|
Сообщ.
#7
,
|
|
|
Работать с видеостраницами можно с помощью процедур SetActivePage и SetVisualPage модуля Graph. Набери их, нажми Ctrl-F1 в оболочке Pascal'я и получишь информацию....
Вообще видеостраница - это тот участок памяти, который отображён на экране. Переключая страницу, ты изменяешь адрес этого участка памяти. Количество страниц, соответственно, зависит от объёма видеопамяти.... |
Сообщ.
#8
,
|
|
|
Прошу прощения. Пример работы со страницами есть в bgidemo. портированной под TMT Pascal.
|
Сообщ.
#9
,
|
|
|
:-X
Окно для раборы с видео-памятью находится по адресу, который содержитьяся в переменной заранее определенной в TP7.0 segA000 и segB000. Для установки SVGA режима экрана и работы со страницами можно использовать функции специального прерывания для работы с видеоадаптером по стандарту VESA. |
Сообщ.
#10
,
|
|
|
Пардон, SegB000 используется для монохромных видеоадаптеров и всегда содержит значение $B000 (сегмент текстового окна). Для режима 80x25 первые 4096 байт (80*25*2 + 96 (для понта)) содержат данные окна нулевой страницы видеопамяти (независимо от того, какая установлена сейчас). Для цветных адаптеров используется SegB800 (всегда = $B800). Информация о кол-ве строк, колонок, размере страницы и т.д. есть в области данных BIOS (Seg0040 = $40).
|
Сообщ.
#11
,
|
|
|
Я немного нагнал, кстати....
Seg0040, SegB000, SegB800 содержат $40, $B000, $B800 только для прог, работающих в реальном/виртуальном режиме (Turbo Pascal делает только такие).... А для прог, рассчитанных на работу в защ. режиме (с использованием DPMI, это можно сделать на Borland Pascal'е), эти переменные содержат селекторы этих сегментов.... Сообщения были разделены в тему "Спам" |