Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Установка логической длины строки развертки



Страницы видеопамяти отображаются на экран последовательно, друг за другом. При этом на экран отображается только некоторая часть видеопамяти. Другая, невидимая часть, может использоваться как вспомогательная: для "прокрутки" изображения, для хранения шрифтов и масок, для z-буферизации и пр.

================

| |

| |--- видимая часть видеопамяти

| |

================

| |

| |

| |--- невидимая часть

| |

| |

----------------

Однако, если ширина экрана в пикселах не равна 2N (256, 512, 1024 или 2048), то концы страниц не будут совпадать с концами ви­деострок, что порождает множество проблем - при вычерчивании, к примеру, линии на экране, придется при выводе каждой точки выпол­нять проверку пересечения границы страницы, и, при необходимости, переключать страницу.

Постоянный контроль границы страницы и частое программное (через VESA-BIOS) переключение страниц чудовищно замедляет вывод информации на экран (в сотни или тысячи раз).

Эту проблему можно частично разрешить, реорганизуя видеопа­мять таким образом, чтобы логическая длина строки (длина строки видеопамяти) была больше физической (экранной) и стала кратной 2N:

видимая область

|

================---------

| | |

| | |

| | |

================ |

| |--- невидимая область

| |

-------------------------

Установка новой логической длины строки выполняется вызовом прерывания 10h с номером функции 4F065h. В регистр BL нужно запи­сать 0, в регистр CX - требуемую ширину строки в пикселах.

Например, устанавливаем длину строки равной 1024 пиксела:

mov AX,4F06h

mov BL,0

mov CX,1024

int 10h

В 8-битовом режиме (256 цветов) на одну точку приходится 1 байт данных, в 32-битовом режиме True Color - 4 байта. Если логи­ческая длина строки равна 1024 пиксела, то на одну страницу будет приходиться соответственно 64 строки в 256-цветном режиме и 16 строк - в режиме True Color.

Более радикальный способ используется в программах трехмер­ной графики, где каждую точку в каждом кадре приходится перезапи­сывать по несколько раз. Видеопамять работает медленнее ОЗУ и намного медленнее кэш-памяти. Поэтому (с точки зрения скорости работы) выгодно выделить в ОЗУ буфер кадра (от 2 до 8 Мб), пост-

роить там изображение и переписать готовый кадр в память видео­карты.

Для двумерной графики такой способ выигрыша по скорости обычно не дает - двумерная графика работает с небольшими областя­ми экрана, а не с целым кадром, и переписывать весь кадр только ради изменения незначительной его части невыгодно.

ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ

ЛЕКЦИЯ N10





Дата публикования: 2014-12-08; Прочитано: 213 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...