application de base SDL + openGL. More...
#include <App.h>
Public Member Functions | |
virtual | ~App () |
destruction de l'application. | |
int | resizeWindow (const int w, const int h) |
redimensionne la fenetre. | |
int | windowWidth () const |
renvoie les dimensions de la fenetre | |
int | windowHeight () const |
renvoie les dimensions de la fenetre | |
bool | isClosed () |
indique si la fenetre est fermee. | |
void | close () |
demander a fermer la fenetre. | |
void | swap () |
demande a afficher l'image construite par opengl | |
bool | processEvents () |
traitement des evenements systemes : clavier, souris, fenetre, etc. | |
unsigned char * | getKeys () |
renvoie le tableau d'etat des touches du clavier. | |
unsigned char & | key (const unsigned int key) |
renvoie l'etat d'une touche selon son code ascii ou son identifiant SDLK_xxx. | |
initialisation manuelle de l'application. | |
App () | |
construction d'une application par defaut (non initialisee, pas de contexte opengl, pas de fenetre, appeller createWindow() pour initialiser opengl). | |
int | createWindow (const int w, const int h, const AppSettings &flags=AppSettings()) |
cree une fenetre de dimension w x h et termine l'initialisation. | |
initialisation complete de l'application. | |
App (const int w, const int h, const AppSettings &flags=AppSettings()) | |
construction d'une application. | |
interception des evenements clavier / souris / redimensionnement. | |
App fournit une implementation par defaut qui ne fait rien (les evenements sont reellement traites par processEvents()). a deriver, pour integrer nvWidgets, par exemple. | |
virtual void | processWindowResize (SDL_WindowEvent &event) |
traitement des redimensionnements de la fenetre de l'application. | |
virtual void | processMouseButtonEvent (SDL_MouseButtonEvent &event) |
traitement des clicks souris. | |
virtual void | processMouseMotionEvent (SDL_MouseMotionEvent &event) |
traitement des deplacements de la souris. | |
virtual void | processKeyboardEvent (SDL_KeyboardEvent &event) |
traitement des evenements claviers. | |
encapsulation de la boucle principale | |
deriver de App pour construire une nouvelle application. | |
virtual int | init () |
appele apres l'initialisation complete de App et la creation du device. | |
virtual int | run () |
demarre la boucle principale. | |
virtual int | quit () |
appele avant la fermeture de l'application. | |
virtual int | update (const int time, const int delta) |
appele regulierement pour mettre a jour la scene (animations, deplacements, etc.). | |
virtual int | draw () |
appele regulierement pour afficher la scene. | |
Protected Member Functions | |
App (const App &) | |
App & | operator= (const App &) |
int | createGLContext (const AppSettings &settings) |
Protected Attributes | |
SDL_Window * | m_window |
SDL_GLContext | m_gl_context |
unsigned char * | m_key_state |
unsigned int * | m_key_map |
int | m_width |
int | m_height |
SDL_bool | m_fullscreen |
int | m_stop |
application de base SDL + openGL.
consultez le libSDL Programming Guide
gk::App::App | ( | const int | w, |
const int | h, | ||
const AppSettings & | flags = AppSettings() |
||
) |
construction d'une application.
w | largeur de la fenetre |
h | largeur de la fenetre |
References close(), and createWindow().
int gk::App::createGLContext | ( | const AppSettings & | settings | ) | [protected] |
! force le chargement de toutes les fonctions exportees par le driver
References gk::AppDebug(), gk::AppSettings::apply(), close(), gk::AppSettings::context_flags, gk::AppSettings::major_version, gk::AppSettings::minor_version, gk::AppSettings::multi_samples, gk::AppSettings::profile_flags, swap(), and gk::AppSettings::swap_control.
Referenced by createWindow().
int gk::App::createWindow | ( | const int | w, |
const int | h, | ||
const AppSettings & | flags = AppSettings() |
||
) |
cree une fenetre de dimension w x h et termine l'initialisation.
\ todo a tester pour SLD2
References close(), and createGLContext().
Referenced by App().
unsigned char * gk::App::getKeys | ( | ) |
renvoie le tableau d'etat des touches du clavier.
permet de connaitre l'etat d'une touche. le code ascii ou l'identifiant SDLK_xxx peuvent etre utilises comme indices dans le tableau.
la liste des codes est dans libSDL Programming Guide
unsigned char & gk::App::key | ( | const unsigned int | key | ) |
renvoie l'etat d'une touche selon son code ascii ou son identifiant SDLK_xxx.
la liste des codes est dans libSDL Programming Guide
exemple : key('a'), ou key(SDLK_UP)
la fonction renvoie une reference, on peut l'utiliser pour desactiver manuellement une touche lorsque l'action a ete traitee et que l'on ne souhaite pas la re-executer a chaque image.
virtual int gk::App::init | ( | ) | [inline, virtual] |
int gk::App::run | ( | ) | [virtual] |
demarre la boucle principale.
App fournit une version complete, il n'est pas necessaire de la redefinir.
References draw(), init(), isClosed(), processEvents(), quit(), and update().
virtual int gk::App::quit | ( | ) | [inline, virtual] |
virtual int gk::App::update | ( | const int | time, |
const int | delta | ||
) | [inline, virtual] |
appele regulierement pour mettre a jour la scene (animations, deplacements, etc.).
time | millisecondes ecoulees depuis le lancement, |
delta | millisecondes ecoulees depuis l'appel precedent. a redefinir en derivant App. doit renvoyer 0 pour sortir de la boucle principale, ou 1 pour continuer. |
Referenced by run().
virtual int gk::App::draw | ( | ) | [inline, virtual] |