QuestionCopyright.org

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:
  1. Malý trojuholník s vrcholmi v [160,80], [180,120] a [140,120].
  2. Veľký trojuholník s vrcholmi v [160,30], [220,150] a [100,150].
  3. Ozubené koleso
  4. Zložitý vzor
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.