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

DirectX Discussion :

[C++][DX9 SDK] les méthodes Render et Render3DEnvironment()


Sujet :

DirectX

  1. #1
    Membre du Club

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 46
    Points
    46
    Par défaut [C++][DX9 SDK] les méthodes Render et Render3DEnvironment()
    salut,

    Il y une subtilité que je ne saisis pas bien dans la classe CD3DApplication fournie avec le SDK.

    Dans les méthodes Run() et MsgProc(..) on peut voir que :

    - dans le cas où on reçoit le message window WS_PAINT alors la fonction Render() sera appelée ( à partir de MsgProc )

    - dans l'autre cas, c'est la méthode Render3DEnvironment() qui est appelée et qui se charge d'appeller Render()

    Je ne saisi pas bien pourquoi on appelle pas Render3DEnvironment() dans les 2 cas. Est-ce que ce serait une erreur que de remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    switch( uMsg )
        {
            case WM_PAINT:
                // Handle paint messages when the app is paused
                if( m_pd3dDevice && !m_bActive && m_bWindowed &&
                    m_bDeviceObjectsInited && m_bDeviceObjectsRestored )
                {
                    Render();
                    m_pd3dDevice->Present( NULL, NULL, NULL, NULL );
                }
                break;
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    switch( uMsg )
        {
            case WM_PAINT:
                // Handle paint messages when the app is paused
                if( m_pd3dDevice && !m_bActive && m_bWindowed &&
                    m_bDeviceObjectsInited && m_bDeviceObjectsRestored )
                {
                    Render3DEnvironment();
                    m_pd3dDevice->Present( NULL, NULL, NULL, NULL );
                }
                break;
    dans la methode MsgProc ?

    Merci pour vos lumières

  2. #2
    Membre du Club

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 46
    Points
    46
    Par défaut précision
    Je ne sais pas si ma question est très claire donc voici une autre façon de poser le problème :

    Render3DEnvironment() fait en gros ceci :

    - récupérer quelques stats sur le temps écoulé ( m_fElapsedTime,... )
    - appel de FrameMove()
    - appel de Render()

    Donc pour résumer, lorsqu'on ne reçoit pas de message windows on fait tout ça, et lorsqu'on reçoit le message WS_PAINT on ne fait qu'appeler Render(), c'est tout.

    Pourquoi il n'y a pas d'appel de FrameMove() lorsqu'on reçoit le message WS_PAINT? En quoi est ce inutile?

  3. #3
    Membre du Club

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 46
    Points
    46
    Par défaut oups
    wouaaa la honte, suffisait de lire le commentaire. Désolé...

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Et que dit ce commentaire ?

  5. #5
    Membre du Club

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 46
    Points
    46
    Par défaut
    Il dit :

    // Handle paint messages when the app is paused

    Si l'application est en pause, pas besoin d'appeler FrameMove(), c'est logique.
    Si vous le souhaitez, vous pouvez supprimer ce post, je ne pense pas qu'il soit très utile, lol.

    ++

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

Discussions similaires

  1. [Portlet] Difference entre les méthodes processAction & render
    Par menzlitsh dans le forum Portails
    Réponses: 1
    Dernier message: 18/05/2009, 12h01
  2. Les méthodes abstraites et les interfaces
    Par ETI-trian dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2006, 12h14
  3. [EJB2.1 Entity] [BMP] les requetes doivent-elles se trouver directement dans les méthodes ?
    Par webspeak dans le forum Java EE
    Réponses: 2
    Dernier message: 24/03/2005, 08h34
  4. [Interface] Appeller toutes les méthodes héritées d'un class
    Par thibaut.d dans le forum Général Java
    Réponses: 4
    Dernier message: 25/01/2005, 08h42
  5. Utiliser les méthodes des boutons crées en rafale.
    Par kabouns dans le forum Composants
    Réponses: 8
    Dernier message: 03/12/2004, 10h48

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