визначає який графічний драйвер і в якому режимі використовується (тип адаптера - в
GraphDriver , режим -
GraphMode ).
function GetDriverName: string; oзвращает рядок з ім'ям поточного драйвера. p> procedure InitGraph (var GraphDriver: integer; var GraphMode: integer; PathToDriver: String); Ініціалізує графічну систему і встановлює пристрій в графічний режим. PathToDriver - Повний шлях до драйвера. bgi, зазвичай 'c: tp bgi' . Якщо шлях опущений (''), то драйвер повинен знаходиться в поточному каталозі.
function RegisterBGIfont (Font: pointer): integer; Реєструє шрифт BGI для графічної системи. Зареєстрований фонт може використовуватися у виклику SetTextStyle . Він може бути завантажений з диска в купу або перетворений в. obj файл (за допомогою binobj. exe) і пов'язаний в файл. exe. У випадку помилки функція повертає від'ємне значення. p> function RegisterBGIdriver (Driver: pointer): integer; Реєструє драйвер BGI для графічної системи. Зареєстрований драйвер буде використовуватися процедурою InitGraph . Він може бути завантажений з диска в купу або перетворений в. obj файл (за допомогою binobj. exe) і пов'язаний у файл. exe. У випадку помилки функція повертає від'ємне значення. p> function InstallUserDriver (DriverFileName: string; AutoDetectPtr: pointer): integer; Встановлює користувальницький драйвер пристрою в BGI таблицю драйверів пристроїв.
function InstallUserFont (FontFileName: string): integer; Встановлює новий шрифт, який не вбудований в BGI систему.
procedure SetGraphBufSize (BufSize: word); Дозволяє змінити розмір буфера для функцій заповнення (закрасок). Буфер з розміром BufSize байт розміщується в купі при зверненні до InitGraph. За замовчуванням розмір 4К, що достатньо для побудови багатокутника з 650 лініями.
function GetMaxMode: integer; Повертає номер максимального режиму поточного завантаженого драйвера. p> procedure GetModeRange (GraphDriver: integer; var LoMode, HiMode: integer); Повертає мінімальний і максимальний графічні режими для даного драйвера.
function GetModeName (GraphMode: integer): string; Повертає рядок з ім'ям зазначеного графічного режиму.
procedure SetGraphMode (Mode: integer); Перекладає систему у вказаний графічний режим і очищає екран.
function GetGraphMode: integer; Повертає поточний графічний режим. p> procedure GraphDefaults; Встановлює поточний покажчик (CP) у вихідну позицію (тобто точку 0,0) і скидає всі встановлювані користувачем режими в початковий стан, у т. ч. вікна, палітру, основний колір і колір фону, стиль ліній, шрифт, вирівнювання тексту, розмір символів і стиль виведеного тексту. Система повинна перебувати в графічному режимі.
procedure RestoreCrtMode; Відновлює текстовий режим відео, який був до ініціалізації графіки. Не звільняє буфер і не обнуляє встановлені змінні.
procedure CloseGraph; Закриває графічну систему. Відновлює текстовий режим відео, який був до ініціалізації графіки. Звільняє буфер і скидає всі графічні змінні.
Координати графічного курсору
function GetX: integer; Повертає координату X поточної позиції (CP).
function GetY: integer; Повертає координату Y поточної позиції (СР).
function GetMaxX: integer; возврашает максимальний Х (дозвіл по горизонталі) для поточного графічного драйвера і режиму.
function GetMaxY: integer; Повертає максимальний Y (дозвіл по вертикалі) для поточного графічного драйвера і режиму.
Відмінності графіки Турбо-Паскаля і Турбо-Сі
Турбо-Паскаль НЕ розрізняє відмінностей в регістрах (маленькі чи великі літери) при написанні констант, типів, процедур і функцій модуля Graph . У Турбо-Сі всі константи, типи, змінні повинні бути у верхньому регістрі (великими літерами), а назви процедур і функцій - в нижньому (прописними літерами). Зміст бібліотек графіки при цьому абсолютно однаково.
НЕДОЛІКИ BGI-ГРАФІКИ
Незважаючи на великі можливості для ділової графіки, графічні засоби з точки зору професійного розробника залишають бажати кращого. Не можна працювати з довільними спрайтами, немає скролінгу екрану, збереження/виведення всього зображення, масштабування картинки, функції заповнення та роботи з бітовими образами працюють повільно, неможливе використання файлів інших графічних форматів, відсутні тривимірні зображення і т.д. Все це робить скрутним написання графічних редакторів, іграшок, систем інженерного та математичної графіки. Для реалізації вищевказаних можливостей необхідно безпосередньо управляти графічним адаптером, використовуючи прямий доступ в відеопам'ять і службові функції BIOS .