QuestionCopyright.org

Knižnica UGLI

Knižnica UGR je súčasťou pripravených inštalačných programov a je určená pre použitie v MinGW32 na zjednodušenie práce so systémom OpenGL. Základná šablóna vyzerá nasledovne:

#include "ugli.h"

using namespace std;

int main(void)
{
    ugli_init("TEMPLATE");
    ugli_gfx(800,600,32);

    while(!ugli_loop()){
    }

    ugli_exit();
    return 0;
}
END_OF_MAIN()

Pri riešeniach úloh môžete používať ľubovoľné funkcie z knižnice.

void ugli_init(char *name,bool startMouse=false);
Popis Inicializuje OpenGL rozhranie.
Premenné char *name - Názov aplikácie a okna
bool startMouse - Je potrebné inicializovať myš
void ugli_exit(int v,char *fmt, ...);
void ugli_exit(char *fmt, ...);
void ugli_exit(void);
Popis Ukončí aplikáciu.
Premenné int v - Návratová hodnota
char *fmt, ... - Správa, ktorú treba vypísať pri ukončení aplikácie
void ugli_gfx(int w,int h,int d,bool fullscreen=false);
Popis Vytvorí samotné okno aplikácie. Musí byť zavolané až po ugli_init a po zavolaní všetkých ugli_set.
Premenné int w - Šírka okna v pixeloch
int h - Výška okna v pixeloch
int d - Farbná hĺbka (16 alebo 32)
bool fullscreen - Spustenie aplikácie v celoobrazovkovom móde
void ugli_set(GLint option,GLint value);
Popis Nastavenie inicializačnej hodnoty OpenGL premenných. Musí byť volané medzi ugli_init a ugli_gfx.
Premenné GLint option - Názov hodnoty
GLint value - Hodnota
void ugli_perspective(GLfloat n,GLfloat f);
Popis Nastavenie matice perspektívy pre OpenGL.
Premenné GLfloat n - "near" hodnota orezania zobrazenia
GLfloat f - "far" hodnota orezania zobrazenia
int ugli_loop(void);
Popis Vymení zadný a predný buffer, vyčistí GL_COLOR_BUFFER_BIT a GL_DEPTH_BUFFER_BIT a vráti nenulovú hodnotu, ak bola zadaná požiadavka na ukončenie aplikácie.
GLfloat ugli_step(void);
Popis Vráti hodnotu typu GLfloat, ktorá je väčšia ako nula a menšia ako jedna, pričom jej veľkosť je lineárne závislá od času medzi dvoma volaniami ugli_loop.
void ugli_texture_filters(GLint minfilter,GLint magfilter);
Popis Nastaví filter použitý pri zväčšovaní a zmenšovaní vykresľovanej textúry. Hodnoty podporované pre zmenšovanie sú určite minimálne:
  • GL_NEAREST - použije najbližší pixel k vykresľovanému
  • GL_LINEAR - vráti vážený priemer štyroch najbližších častí textúry, ktoré su nabližšie k vykresľovanému pixelu
  • GL_NEAREST_MIPMAP_NEAREST - vyberie mipmapu, ktorá je rozmermi najbližšia k vykresľovanej textúre a použije metódu GL_NEAREST
  • GL_LINEAR_MIPMAP_NEAREST - vyberie mipmapu, ktorá je rozmermi najbližšia k vykresľovanej textúre a použije metódu GL_LINEAR
  • GL_NEAREST_MIPMAP_LINEAR - vyberie dve mipmapy, ktoré sa najviac rozmermi približujú vykresľovanej ploche a použije sa metóda GL_NEAREST na obe. Výsledný pixel je váženým priemerom dvoch vybraných pixelov.
  • GL_LINEAR_MIPMAP_LINEAR - vyberie dve mipmapy, ktoré sa najviac rozmermi približujú vykresľovanej ploche a použije sa metóda GL_LINEAR na obe. Výsledný pixel je váženým priemerom dvoch vybraných pixelov.
Hodnoty podporované pre zväčšovanie sú určite minimálne:
  • GL_NEAREST - použije najbližší pixel k vykresľovanému
  • GL_LINEAR - vráti vážený priemer štyroch najbližších častí textúry, ktoré su nabližšie k vykresľovanému pixelu
Premenné GLint minfilter, magfilter - Filter použitý na zväčšovanie a zmenšovanie textúry
GLuint ugli_texture(const char *fname,bool mipmap);
Popis Natiahne textúru zo súboru formátu JPEG do OpenGL a vráti jej index.
Premenné const char *fname - Názov JPEG súboru s textúrou
bool mipmap - Ak TRUE, vytvorí hneď aj príslušné mipmapy