gKitGL
Presentation de gk::App.

gk::App peut etre utilisee de plusieurs facons : soit en utilisant son interface bas niveau, soit en la derivant.

exemple 1: utilisation bas niveau

    // cree une fenetre de 600 par 600 et initialise un context openGL
    App app(600, 600);

    // boucle principale, version decomposee de gk::App::run()
    while(!app.isClosed()) // isClosed() renvoie vrai tant que la fenetre existe
    {
        // traitement des evenements : clavier, souris, fenetre, etc.
        app.processEvents();
        
        // renvoie l'etat d'une touche 
        if(app.key('q'))
        {
            printf("close\n");
            // demande a fermer l'application, la prochaine fois isClosed() renverra faux.
            app.close();
        }
    }

exemple 2: utilisation par derivation

    // creation de l'objet application derive de gk::App
    Tuto app(600, 600);

    // boucle principale, deriver de App pour redefinir draw()
    app.run();

La methode gk::App::run() appelle dans l'ordre la methode gk::App::init(), puis execute la boucle telle quelle est presentee dans l'exemple1, gk::App::draw() est appellee a chaque iteration, et enfin appelle gk::App::quit() avant de sortir.

Voici un exemple de classe derivee :

    class Tuto : public gk::App
    {
    public:
        Tuto( const int w, const int h )
            :
            gk::App(w, h),
        {}
        
        ~Tuto( ) {}
        
        // redefinir init pour charger les objets, construire une scene, etc.
        // int init( ) {}
        
        // redefinir quit pour liberer tout ce qui a ete charge dans init().
        // int quit( ) {}
        
        // redefinir draw pour faire quelquechose ...
        int draw( )
        {
            // sortir si l'utilisateur a appuye sur q ou escape, cf. la doc de SDL  pour le detail des codes SDLK_xxx
            if(key('q') || key(SDLK_ESCAPE))
            {
                printf("close\n");
                close();
                // renvoyer 0 ferme l'application
                return 0;
            }
            
            // afficher quelquechose ...
            
            // renvoyer 1 pour continuer
            return 1;
        }
    };
 All Classes Namespaces Functions Variables Typedefs Enumerator Friends