|
|||||||||||||||||||||||||||||
Автор: xen. Дата публикации: 10.08.2004 |
Рисуем пиксел в графическом режимеГрафические режимы могут быть разбиты на шесть групп в зависимости от количества бит, отводимых каждому пикселу: 1 бит/пиксел, 2 цвета, одна битовая плоскость: CGA mode 6 разрешение 640*200 2 бит/пиксел, 4 цвета, одна битовая плоскость: CGA mode 4 разрешение 320*200 4 бит/пиксел, 16 цветов, четыре битовых плоскости: EGA mode 0Dh разрешение 320*200 EGA mode 0Eh разрешение 640*200 EGA mode 10h разрешение 640*350 VGA mode 12h разрешение 640*480 VESA mode 102h разрешение 800*600 VESA mode 104h разрешение 1024*768 VESA mode 106h разрешение 1280*1024 8 бит/пиксел, 256 цветов, одна битовая плоскость: VGA mode 13h разрешение 320*200 VESA mode 100h разрешение 640*400 VESA mode 101h разрешение 640*480 VESA mode 103h разрешение 800*600 VESA mode 105h разрешение 1024*768 16 бит/пиксел, 65536 цветов, одна битовая плоскость(существуют также 32768-цветные режимы): VESA mode 111h разрешение 640*480 VESA mode 114h разрешение 800*600 24 бит/пиксел, 16777216 цветов, одна битовая плоскость: VESA mode 112h разрешение 640*480 Исключая 4-битные режимы пикселы в памяти располагаются на одной плоскости (plane), т.е., если координаты пиксела (x,y), то адрес, по которому располагается этот пиксел в памяти может быть вычислен как Address = LineLength*y + Bits*x/8 где LineLength - количество байтов, занимаемых каждой строкой пикселов, а Bits - количество бит, занимаемым пикселом. Исключениями являются режимы CGA номер 4 и 6, у которых четные и нечетные линии расположены в различных сегментах памяти. В шестнадцатицветных режимах экранная память разделяется на 4 битовые плоскости. Каждый бит значения цвета пиксела расположен на своей плоскости. Адрес байта, хранящего пиксел с координатами x,y можно вычислить как Address = LineLength*y + x/8 где LineLength - число байтов, занимаемых одной строкой. Рисование пиксела с координатами x,y в 16-цветных режимах подразумевает установку бита во всех четырех плоскостях. Активная в данный момент плоскость выбирается записью в соответствующие порты видеокарты. Режимы CGA, EGA и VGA поддерживаются всеми стандартными BIOS. Переключение в эти режимы обычно осуществляется простым вызовом функций BIOS. Pixel$ Во всех режимах VGA следующая процедура Pixel$ может нарисовать пиксел. Нужно отметить, что процедура достаточно медленная, т.к. используются вызовы функций BIOS.
Самый интересный режим VGA - это режим 13h с возможностью отображения 256 цветов и разрешением 320*200. Номер цвета 0...255 соответствуют значениям в палитре, где все цвета представлены в виде определенных сочетаний красной, зеленой и синей компонент. Следующая процедура VGApxl$ рисует пиксел в этом режиме. Она работает достаточно быстро, однако существуют еще более быстрые варианты.
|
|
| ||||||||||||||||||||||||||