Knižnica UGR
Knižnica UGR je súčasťou pripravených inštalačných programov a je určená pre použitie v Turbo C++ 3.0 na zjednodušenie práce s grafikou. Zdrojové kódy nie sú dostupné z dôvodu, že jej jednotlivé funkcie sú súčasťou domácich úloh. Má teda poslúžiť hlavne pre tých, čo niektoré z funkcií nedokážu naprogramovať a tým pádom by na ďalších cvičeniach nemohli pokračovať ďalej, keďže väčšinou platí, že funkcie programované na cvičení sú neskôr často využívané na cvičeniach nasledujúcich.
Pri zadaniach úloh máte uvedené, ktoré funkcie z knižnice UGR môžete používať. Pri riešení úloh z prvého cvičenia smiete napríklad používať len jednu funkciu, pri úlohách z druhého už viac.
void ugr_asm_setmode(uint8_t mode) | |
Popis | Prepne grafickú kartu do zadaného režimu. |
Premenné | uint8_t mode - Identifikátor požadovaného grafického režimu |
void ugr_asm_blinking(uint8_t enabled) | |
Popis | Povolenie blikania textu v konzole. Ak je povolené, po nastavení najvyššieho bitu pre textový atribút bude text blikat. Ak nie je, tak na farbu pozadia sú použité všetky 4 bity (teda môže byť od 0 do 15) |
Premenné | uint8_t enabled - Povolené, ak rôzne od nuly |
void ugr_asm_putchar(uint8_t znak, uint8_t attr, uint8_t x, uint8_t y) | |
Popis | Nakreslí znak na zadanú pozíciu použitím prerušenia 0x10. |
Premenné |
uint8_t znak - ASCII index znaku uint8_t attr - Atribút zložený s farby pozadia a textu uint8_t x - X súradnica na obrazovke, číslované od nuly uint8_t y - Y súradnica na obrazovke, číslované od nuly |
void ugr_mem_putchar(uint8_t znak, uint8_t attr, uint8_t x, uint8_t y) | |
Popis | Nakreslí znak na zadanú pozíciu použitím priameho prístupu do grafickej pamäte. |
Premenné |
uint8_t znak - ASCII index znaku uint8_t attr - Atribút zložený s farby pozadia a textu uint8_t x - X súradnica na obrazovke, číslované od nuly uint8_t y - Y súradnica na obrazovke, číslované od nuly |
void ugr_mem_clrscr(void) | |
Popis | Nastaví celú textovú konzolu na čiernu farbu pozadia a čierne písmo. |
Premenné | žiadne |
void ugr_asm_palette(uint8_t color, uint8_t r, uint8_t g, uint8_t b) | |
Popis | Nastaví určenému indexu farby prislúchajúce RGB hodnoty. |
Premenné |
uint8_t color - Index farby uint8_t r - Červená zložka, od 0 do 63 uint8_t g - Zelená zložka, od 0 do 63 uint8_t b - Modrá zložka, od 0 do 63 |
void ugr_asm_putpixel(uint8_t color, int16_t x, int16_t y) | |
Popis | Nastaví jednému pixelu nový index farby pomocou volania prerušenia 0x10. |
Premenné |
uint8_t color - Index farby int16_t x - X súradnica pixela na obrazovke, číslované od nuly int16_t y - Y súradnica pixela na obrazovke, číslované od nuly |
void ugr_mem_putpixel(uint8_t color, int16_t x, int16_t y) | |
Popis | Nastaví jednému pixelu nový index farby pomocou priameho prístupu do grafickej pamäte. |
Premenné |
uint8_t color - Index farby int16_t x - X súradnica pixela na obrazovke, číslované od nuly int16_t y - Y súradnica pixela na obrazovke, číslované od nuly |
uint8_t ugr_asm_getpixel(int16_t x, int16_t y) | |
Popis | Vráti index farby konkrétneho pixelu pomocou volania prerušenia 0x10. |
Premenné |
int16_t x - X súradnica pixela na obrazovke, číslované od nuly int16_t y - Y súradnica pixela na obrazovke, číslované od nuly |
uint8_t ugr_mem_getpixel(int16_t x, int16_t y) | |
Popis | Vráti index farby konkrétneho pixelu pomocou priameho prístupu do grafickej pamäte. |
Premenné |
int16_t x - X súradnica pixela na obrazovke, číslované od nuly int16_t y - Y súradnica pixela na obrazovke, číslované od nuly |
void ugr_line(uint8_t c,int16_t x1,int16_t y1,int16_t x2,int16_t y2) | |
Popis | Vykreslí úsečku z bodu [X1,Y1] do [X2,Y2] pomocou Bresenhamovho algoritmu. Vykresľovanie jednotlivých bodov sa deje priamym zápisom do grafickej pamäte. |
Premenné |
uint8_t c - Index farby, ktorou má byť úsečka vykreslená int16_t x1, y1 - Súradnice začiatku úsečky int16_t x2, y2 - Súradnice konca úsečky |
void ugr_vline(uint8_t color,int16_t x,int16_t ay,int16_t by) | |
Popis | Vykreslí vertikálnu úsečku z bodu [X,AY] do [X,BY]. Vykresľovanie jednotlivých bodov sa deje priamym zápisom do grafickej pamäte. |
Premenné | uint8_t color - Index farby, ktorou má byť úsečka vykreslená int16_t x, ay, by - Súradnice začiatku a konca úsečky |
void ugr_hline(uint8_t color,int16_t ax,int16_t y,int16_t bx) | |
Popis | Vykreslí horizontálnu úsečku z bodu [AX,Y] do [BX,Y]. Vykresľovanie jednotlivých bodov sa deje priamym zápisom do grafickej pamäte. |
Premenné | uint8_t color - Index farby, ktorou má byť úsečka vykreslená int16_t ax, y, bx - Súradnice začiatku a konca úsečky |
void cv03_vzor(uint8_t id) | |
Popis | Vykreslí rôzne vzory na obrazovku farbou s indexom 15 a priamym zápisom do grafickej pamäte. Momentálne je možné vykresliť štyri vzory:
|
Premenné | uint8_t id - Typ obrazca, od 1 po 4 |
void ugr_triangle(uint8_t color,int16_t x1,int16_t y1,int16_t x2,int16_t y2,int16_t x3,int16_t y3) | |
Popis | Vyreslí trojuholník s vrcholmi v bodoch [X1,Y1], [X2,Y2], [X3,Y3] vyplnený farbou s indexom color. Vykresľovanie jednotlivých bodov sa deje priamym zápisom do grafickej pamäte. Pri vykresľovaní nečíta z grafickej pamäte a vyuzíva len celočíselnú aritmetiku a konštantnú pamäť. |
Premenné | uint8_t color - Index farby, ktorou bude trojuholník vyplnený int16_t x1, y1, x2, y2, x3, y3 - Súradnice vrcholov trojuholníka |
void ugr_grbuffer_enable(uint8_t enabled) | |
Popis | Po zavolaní funkcie s nenulovým parametrom sa začne všetko vykresľovanie pomocou funkcií ugr_mem_* diať do pamäťového (zadného) buffera a nie priamo do pamäte grafickej karty. |
Premenné | uint8_t enabled - Pri zadaní nenulovej hodnoty aktivuje zadný buffer |
void ugr_grbuffer_clear(void) | |
Popis | Prepíše celý pamäťový (zadný) buffer farbou s indexom 0. |
void ugr_grbuffer_blit(void) | |
Popis | Skopíruje celý obsah pamäťového (zadného) buffera do grafickej pamäte. |