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