IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

pause lors du déplacement de la fenetre


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Par défaut pause lors du déplacement de la fenetre
    Salut tout le monde!

    Voila, j'ai remarqué que lorsqu'on déplace la fenêtre SDL a l'aide de la souris l'application se met en pause.

    ça me pose probleme, en effet je calcul le temps que met chaque iteration de ma boucle principale pour certaines opérations, en déplaçant la fenetre ce temps peut prendre des valeurs non voulus.
    il est simple de mètre de coté le traitement quand le temps de boucle est anormal, mais je préférerai ne manquer aucun traitement.
    y'a t'il donc un moyen de récupérer ce temps de pause affin de le soustraire au temps de la boucle?? ou de savoir si la fenetre est en cours de déplacement??

  2. #2
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Bonjour,

    N'est-ce pas le frametime qui aide dans ce cas là ? Le temps que prend une frame pour tout afficher.

    Et la frame suivante on applique les transformations des objets comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    déplacer.x * frametime;

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Par défaut
    ouaip, justement, le frametime est beaucoup trop elevé si jamais la fenêtre était déplacé.

    on pourrais avoir un frametime régulier avec une grosse augmentation d'un coup. par exemple, avec un déplacement de la fenêtre pendant 500 ms, si le programme a un frametime régulier ça donnerai ça :
    ... 10 .. 10 .. 10 .. 510 .. 10 .. 10 ...

    le déplacement de l'image ne serai pas donc régulier, au moment du déplacement de la fenêtre il y aurai comme une sorte de "saut". je voudrai éviter ça.

    si je savais pendant combien de temps a été déplacé la fenêtre, je pourrais corriger :
    ... (10-0) .. (10-0) .. (10-0) .. (510-500) .. (10-0) .. (10-0) ...

  4. #4
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    On voudrait que l'image continue où elle s'était arrêtée lors du déplacement de la fenêtre ? Peut être essayer de ne pas baser le mouvement par rapport au frametime. Est-ce pour un besoin spécifique ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Par défaut
    Citation Envoyé par Happy Voir le message
    On voudrait que l'image continue où elle s'était arrêtée lors du déplacement de la fenêtre ?
    exactement
    Citation Envoyé par Happy Voir le message
    Peut être essayer de ne pas baser le mouvement par rapport au frametime.
    le problème c'est que le déplacement est effectivement calculé en fonction du frametime.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Par défaut
    Salut,

    oui en effet avec SDL lors de manipulation de la fenetre le thread principal est bloque.

    La seule solution pour ne pas bloquer le rendu durant le deplacement de la fenetre (ou le clique sur la barre de titre en general) serait sans doute d utiliser un autre thread.

    Sinon la solution facile pour eviter des "sauts" dans l update du a une frame trop longue lorsque l update reprend est de de clamper le deltatime avec quelque chose du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // Calcul du deltaTime 
    // ...
     
    if (deltaTime > MAX_DELTA_TIME)
        deltaTime = MAX_DELTA_TIME;
    Apres il faut bien regler MAX_DELTA_TIME :
    trop bas et les pc peu puissants feront tourner l appli au ralenti
    trop haut et il y aura toujours des sauts

    Apres tu peux peut etre mixer ca avec l evenement SDL_VIDEOEXPOSE (envoye lorsque la fenetre est modifiee de l exterieur). Par exemple clamper le deltatime uniquement si on catch cet evenement, ou alors carrement sauter l update de cette frame.
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/04/2014, 10h36
  2. Réponses: 22
    Dernier message: 27/12/2008, 01h12
  3. Interdire déplacement d'une fenetre
    Par ramoud dans le forum Visual C++
    Réponses: 5
    Dernier message: 18/12/2006, 17h37
  4. Réponses: 2
    Dernier message: 24/11/2005, 18h33
  5. [TForm] Problème lors du déplacement d'une fenêtre sans barre de titre
    Par Benjamin GAGNEUX dans le forum Composants VCL
    Réponses: 3
    Dernier message: 14/10/2004, 18h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo