22Fermer24
FarewellLe 17/04/2010 à 11:16
Bon, let's go sur la SDL quoi qu'en pensent certains (tongue)

Je vois souvent ce style de boucle dans les exemples/tutos, et même dans le template de CodeBlocks :
    // program main loop
    bool done = false;
    while (!done)
    {
        // message processing loop
        SDL_Event event;
        while (SDL_PollEvent(&event))
        {
            // check for messages
            switch (event.type)
            {
                // exit if the window is closed
            case SDL_QUIT:
                done = true;
                break;

                // check for keypresses
            case SDL_KEYDOWN:
                {
                    // exit if ESCAPE is pressed
                    if (event.key.keysym.sym == SDLK_ESCAPE)
                        done = true;
                    break;
                }
            } // end switch
        } // end of message processing
    [affichage]
    }


Mais... ça va tourner en permanence ça (PollEvent dépile un évènement, il n'est pas bloquant) ? C'est pas mieux de baser cette boucle sur un timer, où l'on détecté les évènements, je ne sais pas, tous les 30 ou 60ème de seconde par exemple ? Sinon, on va boucler en permanence (et à une vitesse différente sur chaque machine kipluzè...).
Ca devrait consommer tout le CPU ça, non ? En tout cas, je ne vois pas pourquoi ça ne le ferait pas...

(C'était la première question du noob qui n'a jamais rien affiché sur un PC à part dans stdout grin)

edit -> oué, un truc aussi con prend un CPU à 100%, en l'utilisant réellement à 3% max je suis sûr ^^