Рейтинг@Mail.ru
TMT Logo

МОДУЛЬ GRAPH
Графическая Библиотека для TMT Pascal v3.50SP2
Часть 6

Copyright (c) 1997,98 TMT Development Corp.
All Rights Reserved

Если вы заметили в документе
опечатки или неточности перевода,
просьба сообщить о них!
Перевод на русский язык и оформление:
Валерий Вотинцев

К Содержанию


Процедуры и Функции



GetVbeCapabilities (функция)

Возвращает информацию об аппаратных возможностях VESA VBE.

Объявление:
 function GetVbeCapabilities: DWord;
Пояснения:
Функция возвращает 4 байта, в которых побитно записана информаци о возможностях VBE.
Поле "Capabilities" размером 4 байта содержит битовые индикаторы, описывающие возможности поддержки конкретных возможностей графической видео-карты.
Приведем их назначение без перевода:
 Бит  Значение  Назначение 
 D0 0
1
DAC is fixed width, with 6 bits per primary color
DAC width is switchable to 8 bits per primary color
 D1 0
1
Controller is VGA compatible
Controller is not VGA compatible
 D2 0
1
Normal RAMDAC operation
When programming large blocks of information to the RAMDAC, use the blank bit in Function 09h
 D3-31 резерв

Более подробную информацию можно получить непосредственно в описании стандарта "VESA BIOS EXTENSION (VBE) Core Functions Standard".

К СодержаниюНаверх

GetVbeInfo (процедура)

Возвращает блок информации о VESA VBE.

Объявление:
 procedure GetVbeInfo (var VI: VbeInfoType);
Пояснения:
Переменная VI должна быть типа VbeInfoType. Обратите внимание, что Вам не требуется выделять блок памяти реального режима для информационной таблицы VBE (VBE Information Table). Модуль TMT Graph просто транслирует эту таблицу в переменную VI, так, что Вы имеете возможность прямого доступа к этой таблице непосредственно из своего Pascal кода.

К СодержаниюНаверх

GetVbeModeInfo (процедура)

Возвращает информацию о видео режиме для указанного внутренноего номера VBE-режима.

Объявление:
 procedure GetVbeModeInfo (ModeNo: Word; var VMI: VbeModeInfoType);
Пояснения:
Переменная VMI должна иметь тип VbeModeInfoType. Обратите внимание, что Вам не требуется выделять блок памяти реального режима для информационной таблицы VBE (VBE Information Table). Модуль TMT Graph просто транслирует эту таблицу в переменную VMI, так, что Вы имеете возможность прямого доступа к этой таблице непосредственно из своего Pascal кода.

К СодержаниюНаверх

GetVbeModesList (процедура)

Возвращает список поддерживаемых видео-картой VESA VBE режимов. Для этого функция проверяет ModesList для получения информации о всех поддерживаемых режимах.

Объявление:
 procedure GetVbeModesList (var ModesList: array of GraphModeType);

К СодержаниюНаверх

GetVbeVersion (функция)

Возвращает версию VESA BIOS.

Объявление:
 function GetVbeVersion: Word

Пояснения:
Версия VBE возвращается в виде двухбайтного значения в кодировке BCD, в котором указывается, какая именно версия VBE поддерживается арппаратурой и драйверами. Старший байт содержит номер основной версии, а младший - номер подверсии. Например, для VBE 2.0 будет возвращено значение 0200h, а для верисии VBE 1.2 - соответственно 0102h. Кстати, некоторые программы интерпретирует последнее значение (0102h) как 1.02, а это неправильно.

К СодержаниюНаверх

GetViewSettings (процедура)

Возвращает параметры текущей видимой области изображения (viewport), в том числе параметры отсечения.

Объявление:
 procedure GetViewSettings(var ViewPort: ViewPortType);

К СодержаниюНаверх

GetVisualPage (функция)

Возвращает номер текущей видео-страницы.

Объявление:
 function GetVisualPage: DWord;

К СодержаниюНаверх

GetWriteMode (функция)

Возвращает текущий режим записи графики на экран (write mode).

Объявление:
 function GetWriteMode: DWord;

Пояснения:
Более подробная информация о режиме записи приведена в описании процедуры SetWriteMode.

К СодержаниюНаверх

GetX (функция)

Возвращает X-координату текущего указателя (current pointer, CP).

Объявление:
 function GetX: LongInt;

К СодержаниюНаверх

GetY (функция)

Возвращает Y-координату текущего указателя (current pointer, CP).

Объявление:
 function GetY: LongInt;

К СодержаниюНаверх

GraphDefaults (процедура)

Устанавливает текущий указатель в начальное положение и сбрасывает графическую систему в режим, соответствующий установкам по умолчанию.

Объявление:
 procedure GraphDefaults;

Пояснения:
При сбросе графической системы устанавливаются значения по умолчанию для следующих параметров:
  • Видимая область (viewport)
  • Палитра (palette)
  • Цвет рисования и цвет фона (draw and background colors)
  • Тип линии и образец заполнения (line style and line pattern)
  • Цвет заполнения (fill color)
  • Текущий фонт, стиль текста, метод выравнивания, пользовательский размер символа.

К СодержаниюНаверх

GraphResult (функция)

Возвращает код ошибки для последней графической операции.

Объявление:
 function GraphResult: Integer;

К СодержаниюНаверх

HRetrace (процедура)

Ожидает горизонтального обратного хода луча.

Объявление:
 procedure HRetrace;

К СодержаниюНаверх

ImageSize (функция)

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

Объявление:
 function ImageSize(x1, y1, x2, y2: LongInt): DWord;
Пояснения:
X1, Y1, X2, и Y2 - координаты диагонально противоположных вершин прямоугольной области экрана. Функция ImageSize вычисляет размер самой области изображения и добавляет 2 слова, в которых будет хранитьс ширина и высота заданной области.

К СодержаниюНаверх

InvertImage (процедура)

Инвертирует изображение в буфере.

Объявление:
 procedure InvertImage (var BitMap);
Пояснения:
Эта процедура выполняет логическую операцию NOT для каждого байта изображения в буфере.

К СодержаниюНаверх

IsLFBUsed (функция)

Определяет, установлен ли режим LFB (Linear Flat frame Buffer) дл текущего графического режима.

Объявление:
 function IsLFBUsed: Boolean;

К СодержаниюНаверх

Line (процедура)

Рисует линию от точки (x1, y1) до точки (x2, y2).

Объявление:
 procedure Line(x1, y1, x2, y2: LongInt);
Пояснения:
При рисовании используется стиль линии, установленный процедурой SetLineStyle, и цвет, установленный процедурой SetColor. Для задания режима вывода (простое копирование Copy или смещивание XOR) используется процедура SetWriteMode.

Обратите внимание, что две следующие операции
  MoveTo(100, 100);
  LineTo(200, 200);
эквивалентны другим двум:
  Line(100, 100, 200, 200);
  MoveTo(200, 200);
Процедуру Line удобно использовать, когда положение текущего указател никак не зависит от рисуемой линии. Процедуру LineTo удобно использовать, когда текущий указатель уже установлен в одну из двух граничных точек линии. Если же Вы хотите, чтобы положение указателя автоматически изменилось при отрисовке линии, то удобнее использовать процедуру LineRel, рисующую линии определенной длины относительно текущего указателя.

К СодержаниюНаверх

LineRel (процедура)

Рисует линию от точки, в которую установлен текущий указатель, до точки отстоящей от текущей на DX по горизонтали и DY по вертикали.

Объявление:
 procedure LineRel(Dx, Dy: LongInt);
Пояснения:
Линия рисуется от текущей точки с координатами (x0, y0) до точки (x1, y1), координаты которой вычисляются следующим образом:
   x1 = x0 + Dx
   y1 = y0 + Dy

К СодержаниюНаверх

LineTo (процедура)

Рисует линию от текущего указателя до точки с координатами (X,Y).

Объявление:
 procedure LineTo(X, Y: LongInt);
Пояснения:
При рисовании используется стиль линии, установленный процедурой SetLineStyle, и цвет, установленный процедурой SetColor. Для задания режима вывода (простое копирование Copy или смещивание XOR) используется процедура SetWriteMode.

Обратите внимание, что две следующие операции
  MoveTo(100, 100);
  LineTo(200, 200);
эквивалентны одной операции:
  Line(100, 100, 200, 200);
Второй метод быстрее и задействует меньше программного кода. Процедуру LineTo следует использовать только тогда, когда текущий указатедь уже установлен в одну из конечных точек линии. Для рисования линии с относительным смещением от текущего указател используйте процедуру LineRel.
Не забывайте, что второй метод (процедура Line) не изменяет текущего положения указателя, в то время, как процедура LineTo перемещает указатель в точку (X, Y).

К СодержаниюНаверх

MoveRel (процедура)

Перемещает текущий указатель на некоторое расстояние (Dx,Dy) относительно текущего положения.

Объявление:
 procedure MoveRel(Dx, Dy: LongInt);
Пояснения:
Если до выполнения процедуры указатель находился в точке (X1,Y1), то после выполнения MoveRel он переместится в точку ((X1 + Dx),(Y1 + Dy)).

К СодержаниюНаверх

MoveTo (процедура)

Перемещает указатель в точку с координатами (X,Y).

Объявление:
 procedure MoveTo(X, Y: LongInt);
Пояснения:
Текущий графический указатель по своему назначению очень похож на мигающий курсор в текстовом режиме за исключением того, что графический курсор не только не мигает, но и вообще не виден. Следующие графические операции изменяют положение текущего указателя:
  • ClearDevice
  • ClearViewPort
  • GraphDefaults
  • SetGraphMode
  • SetSVGAMode
  • LineRel
  • LineTo
  • MoveRel
  • MoveTo
  • OutText
  • SetViewPort

К СодержаниюНаверх

OutCharXY (процедура)

Выводит символ в точке (X,Y) указанным цветом.

Объявление:
 procedure OutCharXY(X,Y: LongInt; C: Char; Color: DWord);
Пояснения:
Процедура не изменяет положение текущего указателя.

К СодержаниюНаверх

OutText (процедура)

Выводит строку текста с позиции текущего указателя.

Объявление:
 procedure OutText(TextString: string);
Пояснения:
Если строка выходит за границы видимой области, то невидимая часть отсекается. Для достижения совместимости кода при выводе текста различными фонтами используйте функции TextWidth и TextHeight для вычисления длины и высоты выводимой строки.
При выводе строки положение текущего указателя изменяется только в том случае, если строка расположена горизонтально и задано выравнивание по левому краю. Стиль и направление вывода текста (горизонтальное или вертикальное) задаетс процедурой SetTextStyle;
Метод выравнивания текста при выводе задается процедурой SetTextJustify:
По горизонтали:
  • Указатель слева от строки;
  • строка центрирована относительно указателя;
  • указатель справа от строки;
По вертикали:
  • Строка над указателем;
  • Строка под указателем;
  • Строка центрирована по вертикали относительно указателя.

К СодержаниюНаверх

OutTextXY (процедура)

Выводит текстовую строку начиная с точки (X,Y).

Объявление:
 procedure OutTextXY(X,Y: LongInt; TextString: string);
Пояснения:
Если строка выходит за границы видимой области, то невидимая часть отсекается. Если OutText выводит текст относительно положения текущего указателя, то OutTextXY осуществляет вывод строки в любой точке экрана, при этом положение текущего указателя не изменяется.
Для достижения совместимости кода при выводе текста различными фонтами используйте функции TextWidth и TextHeight для вычисления длины и высоты выводимой строки. Стиль и направление вывода текста (горизонтальное или вертикальное) задаетс процедурой SetTextStyle; Метод выравнивания текста при выводе задается процедурой SetTextJustify:

К СодержаниюНаверх

PutImage (процедура)

Выводит изображение из буфера на экран.

Объявление:
 procedure PutImage(X, Y: LongInt; var BitMap);
Пояснения:
(X, Y) - верхняя левая точка прямоугольной области экрана, в которую выводится изображение.
BitMap - буферная переменная, в которой записаны габариты изображени и собственно само изображение (см. описание процедуры GetImage).

К СодержаниюНаверх

PutPixel (процедура)

Рисует точку указанного цвета в координатах (X,Y).

Объявление:
 procedure PutPixel(X, Y: LongInt; Pixel: DWord);
Пояснения:
Pixel - цвет выводимой точки.

К СодержаниюНаверх

Автор русского проекта:
Valery Votintsev

при поддержке
TMT Development Corporation.
All rights reserved.


[Новости]   [Продукты]   [Продажи]   [Скачать]   [Апдейты]   [Поддержка]
[Документация]   [FAQ]   [Contributions]   [Ссылки]   [Связь с TMT]   [Главная]