IBM-кушма компьютерлари экранида матн режимига ухшаб график режимни хам урнатиш мумкин. График режимда экранни бошкариш GRAPHICS.H деб номланувчи сарлавхали файлда сакланувчи функциялар туплами оркали бошкарилади. У ерда макрослар ва констанаталар эълон килинган. GRAPHICS.H файли #include директиваси оркали Си тилининг процессори барча график дастуростиларда ишлатиладиган модулларга богланган булиши керак.
Матний режимга ухшаб график функциялар ойна билан алока урнатади. Borland C++ терминологиясида ойна viewport деб номланади. График ойнанинг матн ойнадан фарки чап юкори ойна координаталари (1,1) эмас, балки (0,0) булади. Уз-узидан график ойна тулик экранни эгаллаб туради.
График функцияларни ишлатишдан олдин график режимда видеоадаптерни урнатиш керак. Уни урнатиш(инициализация) учун initgraph() функцияси хизмат килади. Унинг кенгайтмаси куйидагича ёзилади.
void far initgraph( int far *driver, int far *mode,char far *path);
График пакет таркибига GRAPHICS.H сарлавха файли киради, GRAPHICS.LIB кутубхона файли (*.BGI) ва символли шрифтлар (*.CHR) график асбоблар драйверлари киради.
initgraph() функцияси хотирадан керакли драйверни укийди , mode нинг курсатилган аргументига мос видеорежимни урнатади, *.BGI драйвери жойлашган директорияга йулни аниклайди.
Агар маршрут курсатилмаган булса, у холда бу файл мафжуд каталогда жойлашган деб хисобланади.
Сарлавха файл мавжуд драйверлар макросларини аниклайди:
DETECT 0 Юкори график режимни автоматик урнатиш
CGA 1
MCGA 2
EGA 3
EGA64 4
EGAMONO 5
IBM8514 6
HERCMONO 7
ATT400 8
VGA 9
PC3270 10
CURRENT_DRIVER -1
initgraph() дан фойдаланишда аник драйверни курсатиш ёки видеоадаптер тоифасини автоматик аниклаш(детектирлаш) ва дастур бажарилдаётган пайтда керакли драйверни танлаш(DETECT макроси). Бу видеоадаптердан. mode киймати 1-жадв.да санаб утилганлардан бирига булиши мумкин.
График режимдан чикиш учун ва матний режимга утиш учун
void far closegraph(void); функциясидан ва void restorecrtmode(void); функциясидан
фойдаланиш мумкин.
closegraph() функцияси агар дастур бундан кейин график режимда ишласа фойдаланиш мумкин. Бу функция график режим фойдаланаётган хотирани бушатади ва
initgraph() функциянинг чакирилишигача булган матний режимни урнатади. Агар дастур ишини тугатадиган булса, у холда биринчи чакирилган initgraph() функцияси мавжуд булган матний режимда график режимни урнатадиган restorecrtmode() функциясидан фойдаланиш мумкин.
1-жадвал
___________________________________________________________________________
Драйвер Киймат Оралик Палитралар Сахифалар
сони
___________________________________________________________________________
CGACO 0 320х200 0 1
CGAC1 1 320х200 1 1
CGAC2 2 320х200 2 1
CGAC3 3 320х200 3 1
CGAHI 4 640х200 1
MCGAC0 0 320х200 0 1
MCGAC1 1 320х200 1 1
MCGAC2 2 320х200 2 1
MCGAC3 3 320х200 3 1
MCGAMED 4 640х320 1
MCGAHI 5 320х200 1
EGALO 0 640х200 16 ранг 4
EGAHI 1 640х350 16 ранг 2
EGA64LO 0 640х200 16 ранг 1
EGA64HI 1 640х350 4 ранг 1
EGAMONOHI 0 640х350 1 4
HERCMONOHI 0 720х348 2
ATT400C0 0 320х200 0 1
ATT400C1 1 320х200 1 1
ATT400C2 2 320х200 2 1
ATT400C3 3 320х200 3 1
ATT400MED 4 640х200 1
ATT400HI 5 640х400 1
VGALO 0 640х200 16 ранг 4
VGAMED 1 640х350 16 ранг 2
VGAHI 2 640х480 16 ранг 1
PC3270HI 0 720х350 1
IBM8514LO 0 640х480 256 ранг
IBM8514HI 1 1024х768 256 ранг
___________________________________________________________________________
Видеоадаптер типи ранглар сони ва график режимда кандай ранглар ишлатилиши мумкинлигини аниклайди. Энг катта фарк СGA и EGA адаптерлари орасида мавжуд булади. Ранглар сони 1-жадв. да келтирилган.
СGA видеоадптери палитраларда 4 та рангга эга ва 4 та палитрага эга. Бу шуни билдираки, экранда бир вактнинг узида 4 та хар хил ранг тасвирланиши мумкин. Ранглар 0 да 3 гача номерланади. Палитрани танлаш учун CGACx режимини урнатинг, бу ерда х- палитра раками. 0 номерли ранг хар доим фон ранги билан мос тушади. Фон сифатида 0 дан 15 гача булган 16 хил ранглар ишлатилиши мумкин. Ранглар билан номерларнинг мослиги 2-жадвалда келтирилган. CGAHI режимида факатгина икита ранг булиши мумкин, улардан бири кора фонли ранг. Рангла учун 2-жадвалда келтирилган матний режимга ухшаб макрослар аникланган.
EGA режимида 64 рангдан 16 та ранг бир вактда ишлатилиши мумкин, шунингдек хар бир палитра элементи фойдаланувчи томонидан берилиши мумкин. CGA палитраси уз-узидан CGA ранглари билан мос тушади, бирок GRAPHICS.H файлида аппарат кийматлрига мос рангларни сакловчи константалар аникланган.
2-жадвал
_ ______
Do'stlaringiz bilan baham: |