Скачать VESA Graphic Unit for BP7 and SVGA

04.01.1997
Скачать файл (19,33 Кб)

КРАТКОЕ ОПИСАНИЕ

Данный модуль предназначается для работы с гарфикой в весовских режимах средствами BGI (VESA.BGI поставляется вместе с модулем в виде .OBJ файла и линкуется вместе с модулем). Для работы доступны следу- ющие режимы: 320x200x256, 640x400x256, 640x480x256, 800x600x256, 1024x768x256, 1280x1024x256.
Кроме средств предоставляемых модулем GRAPH из стандартной постав- ки Turbo Pascalя данный модуль позволяет работать с мышкой во всех поддерживаемых режимах. Кроме того используемый драйвер SVGA256.BGI немного мною подпатчен на предмет увеличения системного шрифта с 8x8 до 8x16 пикселов (в режимах с высоким разрешением старый шрифт смотрелся очень мелко и как следствие трудно читался).
К модулю подлинковывается свой шрифт (русифицированый, т.е. вам можно обойтись без услуг русификатора экрана).

Для начала работы с весовской графикой вам необходимо выполнить процедуру SetVesa. Эта процедура производит инициализацию графики и мышки (если есть), а затем включает графический режим 0 с разрешением 320x200. Для изменения резрешения необходимо воспользоваться процеду- рой SetGraphMode, из модуля Graph, с одной из констант:

                        _320x200x256
                        _640x400x256
                        _640x480x256
                        _800x600x256
                        _1024x768x256
                        _1280x1024x256

Для завершения работы с графикой следуе вызвать процедуру VesaDone, которая производит деактивизацию обработчика событий от мышки, закры- тие графики и восстановления значений используемых векторов прерыва- ний. Для своих нужд программа изменяет вектора: 61h и 62h.
Для работы с графикой следует пользоваться стандартными проце- дурами и функциями из модуля GRAPH.
Как отмечалось выше, данный модуль может работать с мышкой, для инициализации которой в существует процедура InitMouse, ко- торая проверяет наличие в памяти драйвера мышки и в зависимости от этого утсанавливается значение переменной MousePresent. Кроме того эта процедура производит устанвку обработчика событий от мышки, кото- рый вызывается при перемещении мышки или при нажатии или отпускании кнопок на ней. Обработчик событий от мышки GetMouseXY, при каждом вы- зове, производит перерисовку курсора мышки и заполняет значения пере- менных: Mx, My - координаты левого верхнего угла мышкиного курсора; MButtons - состояние кнопок мышки. Причем все это можно сразу поме- стить в ваши переменные путем их передачи в процедуру GetMouseXY.
Для работы с мышкой предусмотрено еще несколько процедур назна- чение которых можно узнать ниже. И еще, для изменения вида курсора необходимо сформировать в некотором буфере Image размером не более 150x150 и вызвать процедуру NewCursor(PCursor), где PCursor - адрес буфера с новым курсором. При проэктировании курсора следует учитывать, что прозрачным является только нулевой цвет. В курсоре, который идет с модулем используются цвета 254 и 255.

История:
 VesaUnit :
  1.0  Первая версия, нет мышки, есть только включение графики, руссий
       шрифт и своя палитра.
  2.0  Появилась слабая поддержка мышки (с кучей ошибок).  Убрана заг-
       рузка своей палитры.
  2.1  Добавлена процедура SetMouseBox для задания области перемещения
       для мышки, исправлены некоторые ошибки.
  2.2  В процедуры ShowCursor и HideCursor добавлены проверки на нали-
       чие мышки вообще, чтобы было меньше глюков.
  2.3  Исправлена ошибка из-за которой  курсор оставлял  след в случае
       одновременного перемещения курсора и  перерисовки по событию от
       нажимаемой клавиши.
  2.4  Переделан алгоритм вывода курсора,  раньше курсор  накладывался
       на фон по принцыпу AndPut т.е. нормально  работал если был  на-
       рисован 255ым цветом,  теперь  курсор  может быть  многоцветным
       (прозрачным является только нулевой цвет). Переделана процедура
       добавления новых курсоров.
  2.5  Добавлены процедуры работы с  палитрой и  ведение  исторических
       записей.
  2.6  Append by Victor Shantar 2:5054/2.44@fidonet:
       Переработаны процедуры работы с мышой.
       Появилась процедура GetMouseXY. И возможность вешать мышу на
       таймер InitTimeMouse , DoneTimeMouse.
 Vesa2 :
  1.0  Добавлен  нормальный обработчик событий от мышки и убран теперь
       уже не нужный обработчик на таймере.