Відображення на екрані дисплея графічної інформац
Житомирський Військовий Інститут Національного Авіаційного Уніврситету Реферат на тему:Відображення на екрані дисплея графічної інформаціїЖитомир 2010План Графічний режим роботи дисплейних адаптерів. Типи драйверів Модуль GRAPH. Ініціалізація і завершення графічного режиму Структура графічної Паскаль-програми Помилки ініціалізації графічного режиму та їх обробка Процедури та функції роботи з відеорежимами Побудови графічних об'єктів Графічні режими роботи дисплейних адаптерів. Типи драйверів Починаючи з версії 4.0 у склад ТР входить бібліотека графічних підпрограм (модуль GRAPH).,яке забезпечує керування режимами різних адаптерів дисплеїв; вона містить 80 графічних процедур та функцій а також стандартних констант і описів типів даних.Стандартний стан ПК після його вимикання, а також до запуску Паскаль-програм відповідає роботі режиму у текстовому режимі. Для виконання графічних засобів потрібно ініціалізувати графічний режим режим роботи дисплейного адаптера. Настройка графічних процедур на роботу з графічним адаптером досягається шляхом підключення відповідного графічного драйвера. Таким чином графічний драйвер керує графічним адаптером в графічному режимі роботи. Основні характеристики моніторів та адаптерів: розмір екрану по діагоналі (9, 14, 15, 17, 20, 21 дюйм); розмір мінімального елементу зображення (0,25..,28 мм). Для кольорових - моніторна група - 3 зерна; роздільна здібність - це кількість точок (пікселів) по горизонталі та вертикалі; об'єм відеопам'яті (16 Кб - 1 Мб). Графічні можливості адаптерів визначаються загальною кількістю пікселів (роздільна здібність) та кількістю кольорів (відтінків) кожного пікселя. Крім того деякі графічні адаптери мають можливість працювати з декількома графічними сторінками - це область ОЗП, яка використовується для створення "карти" екрана (тобто інформація про світимість кожного пікселя). Графічні драйвери Представляють собою файли з розширенням .BGI, які забезпечують взаємодію програм з графічними пристроями і містяться в окремому каталозі (BGI). {*BGI - Borland Graphics Interface - графічний шнтерфейс фірми Borland}. В процесі ініціалізації визначеного графічного режиму вмикається відповідний драйвер. В таблиці 1 приведені приклади графічних адаптерів та драйверів: Таблиця 1 |
Драйвер | Апаратне забезпечення | | CGA.BGI | Адаптери CGA, MCGA | | EGAVGA.BGI | Адаптери EGA, VGA | | HERC.BGI | Адаптер Hercules | | ATT.BGI | AT&T 6300 (400 рядків) | | PC3270.BGI | IBM 3270 PC | | IBM8514.BGI | IBM 8514 | | |
В комплект поставки ТР входить обмежена кількість драйверів, який може підтримувати один, або декілька відеорежимів. Тип драйвера і режим можна задавати у вигляді числа або у вигляді символьної константи. Ці константи визначені у модулі GRAPH: Таблиця 2 |
Detect = 0 | {автовизначення} | | CGA = 1; | EGAMONO = 5; | | MCGA = 2; | IBM8514 = 6; | | EGA = 3; | HercMONO = 7; | | EGA64 = 4; | ATT 400 = 8; VGA = 9; PC3270 = 10. | | |
Указані в таблиці 2 константи типів драйверів та режими використовують як параметри процедур керування графічними режимами. 2. Модуль GRAPH. Ініціалізація і завершення графічного режиму Як відмічено на початку лекції, для створення графічних зображень в мові ТР призначений спеціальний стандартний бібліотечний модульGRAPH, який підключається стандартним способом: USES GRAPH; Модуль GRAPH представляє собою окремий файл GRAPH.TPU і містить набір процедур і функцій. Процедура ініціалізації графічного режиму: InitGraph (var Driver, Mode : integer; path : string); Змінні Driver i Mode задають драйвер і режим роботи адаптера, path - визначає ім'я файлу драйвера і можливий шлях до файлу. Перші дві змінні задаються константами таблиці 2, іменем або числовим значенням. Приклад 1: Нехай драйвер EGAVGA.BGI знаходиться в каталозі TP\BGI диска С і встановлює режим VGAHI (640*480, 16 кольорів). Фрагмент використання процедури в програмі: Begin … Driver := VGA; Mode := VGAHI; InitGraph (Driver, Mode, `C:\TP\BGI'); … end. Якщо тип адаптера не відомий, або якщо програма розрахована на роботу з будь-яким адаптером, використовується звертання до процедури з параметром автоматичного визначення типу драйверу. Приклад 1а: Driver := Detect; InitGraph (Driver, Mode, `C:\TP\BGI'); Такий параметр рекомендують використовувати при роботі на різних комп'ютерах з різними відеоадаптерами. Особливості автовизначення типу драйвера: а) для адаптера вибирається максимальний режим; б) на час виконання програми всі драйвери знаходяться у пам'яті, або на диску; для великих програм це може привести до зменшення швидкості роботи програми; в) ТР автоматично не розпізнає адаптери IBM8514 i ATT400; їх необхідно вказувати в процедурі. Процедура завершення графічного режиму: CLOSEGRAPH; Процедура без параметрів. В процесі її виконання звільняється пам'ять (від драйверів, файлів, шрифтів, проміжних даних), відновлюється текстовий режим роботи екрану. Наступний перехід до графічного режиму виконується тільки шляхом повторної ініціалізації. 3. Структура графічної Паскаль-програми Приклад 2: Program GraphicDemo; Uses Graph; Var Driver, Mode : integer; Begin Driver := Detect; InitGraph (Driver, Mode, `C:\TP\BGI'); {графічні дії} ….. CloseGraph ; End. 4. Помилки ініціалізації графічного режиму та їх обробка При виконанні програми можуть виникати помилки. Тому в модулі GRAPH реалізований механізм визначення помилок та видачі повідомлень про них на екран за допомогою функції GraphResult i GraphErrorMsg. Функція GraphResult : integer; повертає 0, якщо остання графічна операція виконалась без помилок, або число від -14..-1, при наявності помилок. Функція GraphErrorMsg (Code : integer) : string; повертає значення типу STRING в якому відповідно коду помилки надається текстову повідомлення. CODE - код помилки, який повертається функцією GraphResult. Приклад 3: Var Driver, Mode, Error : string; Begin Driver := Detect; InitGraph (Driver, Mode, `'); Error := GraphResult; If Error <> 0 then WriteLn (GraphErrorMsg (Error)); ……………. {повідомлення помилки} CloseGraph; End. 5. Група процедур та функцій управління режимами роботи графічного адаптера процедура DetectGraph виконується для тестування графічного адаптера: DetectGraph (var Driver, Mode : integer); Ця процедура може бути викликана до ініціалізації графічного режиму. Параметри: Driver - повертає тип драйвера; Mode - повертає максимальне значення відповідного режиму. Ці значення і рекомендується підставляти як фактичні параметри процедури InitGraph. група процедур та функцій управління режимами роботи графічного адаптера: а) функція GetGraphMode : integer повертає код установленого режиму роботи графічного адаптера. б) функція GetMaxMod : integer; повертає максимальний номер коду режиму графічного адаптеру; в) функція GetModName (ModNum : integer) : string; повертає значення типу STRING, яке містить ім'я режиму роботи за його номером; г) функція GetDriveName : string; повертає ім'я поточного графічного драйвера; д) процедура GetModeRange (Driver : integer; var LoMode, HyMode : integer); повертає діапазон можливих режимів роботи заданого графічного драйвера: Driver - тип адаптера; LoMode - мінімальне значення коду режиму адаптера; HiMode - мінімальне значення коду режиму адаптера. !Особливість!: якщо значення Drive задано невірно, то змінні отримують значення -1; перед звертанням до процедури можна не встановлювати графічний режим. процедур установки текстового та графічного режимів: а) RestorCRTMode; повертає до текстового режиму. !Особливість!: навідміну від CloseGraph графічний драйвер залишається у пам'яті, а також залишаються установленими графічного режиму. б) процедура SetGraphMode (Mode : integer); установлює графічний режим за вказаним кодом - Mode. !Осбливість!: для повернення до попереднього графічного режиму на місце параметра мінімальне значення коду режиму адаптера Mode можна вставити функцію GetGraphMode. Розглянемо приклади використання процедур роботи з відеорежимами. Приклад 4: Перехід з графічного режиму до текстового і знову до графічного. Uses Graph; Var Driver, Mode, Error : integer; Begin Driver := Detect; InitGraph (Driver, Mode, `'); Error GraphResult; If Error <> 0 then WriteLn (GraphErrarMsg (Error)) Else Begin WriteLn (`Це графічний режим'); ReadLn; ResultCRTMode; WriteLn (`Це текстовий режим'); `ReadLn; SetGraphMode (GetGraphMode); WriteLn (`Знову графічний режим'); ReadLn; CloseGraph; End; End. Приклад 5: Після ініціалізації графічного режиму виводить на екран рядок з іменем завантаженого драйверу, а також всі режими його роботи. Uses GRAPH; Var a, b : integer; begin a := Detect; InitGraph (a, b, `'); WriteLn (GetDriveName);
Страницы: 1, 2
|