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 :

Problème DirectX, compilation ok, pas d'erreurs mais écran noir


Sujet :

DirectX

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut Problème DirectX, compilation ok, pas d'erreurs mais écran noir
    Bonsoir à tous,

    Voilà j'ai un problème avec une petite appli que je suis en train de mettre en place, en effet tout se compile, quand je test les valeurs tout semble correct mais à a fin je n'ai qu'un écran noir... et je n'arrive pas à savoir d'où vient mon problème :/

    Je travaille sur Visual c++ 2005, avec le SDK directX de juin2007. Plutôt que de balancer tout le code ici j'ai fait une archive avec le fichier projet et tout mais pas d'exe.
    Appli DX Buged

    Le but est d'afficher un modèle 3D, pour commencer ^^.
    Ce que ça fait actuellement : WinMain créé la fenêtre window et instanci une classe "game", elle même instanci "graphic_engine" et "input_engine", qui ont vocation de faire l'affichage graphique et gérer les entrés. "Graphic_engine" lui instanci une classe "object" qui charge le maillage devant être rendu par une méthode de "graphic_engine" et une classe "camera" tout simple.
    "game" appele a chaque image la méthode "frame()" de "graphic_engine", dans laquelle le rendu devrait se faire

    Si vous pouvez y jeter un oeil s'il vous plait je galère et je ne peut même pas être plus précis je ne sais vraiment pas d'où peut venir mon problème, alors même en refaisant tout je saurais pas quoi changer.

    Merci

  2. #2
    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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Bonsoir Laurent,

    J'avais vu le FAQ mais les indications ne m'on pas aidés, en effet je n'ai detecté aucuns problèmes, la version debug ne m'en indique que quand je quitte (je n'ai pas mis les release ), les fonctions.. fonctionnent puisque j'ai executé une fichier sample de directX dont j'ai pris un peu de code et sur le net l'expression "directx black screen" "directx nothink on screen" ne m'amène rien de bon
    Mon problème est p-e due à mes classes, ou alors de la manière donc elles s'imbriquent je ne sais pas.

  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 : 40
    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
    la version debug ne m'en indique que quand je quitte
    Si elle ne t'indique rien pendant que le programme tourne, c'est pas normal. Tu as bien activé le debug runtime dans le panneau de configuration ? Tu regardes bien la fenêtre de sortie de Visual Studio ?
    Et elle t'indique quoi quand tu quittes ?

    Tu as essayé le reference rasterizer ? Tu testes bien le retour de tous tes appels DirectX ?

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Au niveau des retour des fonctions oui j'ai fait plusieurs tests.
    Quand je quitte il me met une foule d'erreurs comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Direct3D9: (ERROR) :    [0] : Address 00E2AA18
    Direct3D9: (ERROR) :    [1] : Address 00E49B2B
    Direct3D9: (ERROR) :    [2] : Address 00E51A1B
    Direct3D9: (ERROR) :    [3] : Address 00401F52
    Direct3D9: (ERROR) :    [4] : Address 00000000
    Direct3D9: (ERROR) :    [5] : Address 00000000
    Direct3D9: (ERROR) :    [6] : Address 00000000
    Direct3D9: (ERROR) :    [7] : Address 00000000
    Direct3D9: (ERROR) :    [8] : Address 00000000
    Direct3D9: (ERROR) :    [9] : Address 00000000
    Direct3D9: (ERROR) :    [10] : Address 00000000
    Direct3D9: (ERROR) :    [11] : Address 00000000
    Direct3D9: (ERROR) :    [12] : Address 00000000
    Direct3D9: (ERROR) :    [13] : Address 00000000
    Direct3D9: (ERROR) :    [14] : Address 00000000
    Le debug mode est activé et j'ai mis le #define D3D_DEBUG_INFO mais rien ne s'affiche dans ma fenêtre de sortie pendant que le programme tourne, d'ailleurs au niveau du #define D3D_DEBUG_INFO c'est bien ça? c'est ce que j'ai lu sur les forums
    Reference_rasterizer j'ai pas regardé

    Edit : mettre D3DDEVTYPE_REF à la place de D3DDEVTYPE_HAL a la création de mon device ne change apperement rien, je n'ai pas de message en plus dans la fenêtre de sortie
    Par contre je viens de voir un truc intéressant là
    "D3D9 Helper: Enhanced D3DDebugging disabled; Application was not compiled with D3D_DEBUG_INFO" dans cette même fenêtre, c'est pas normal non?

  6. #6
    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 : 40
    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
    Ne t'embête pas avec D3D_DEBUG_INFO, perso je ne l'utilise pas. Je ne sais pas ce qu'il ajoute mais les infos de debug qui sont données sans l'avoir défini sont déjà bien fournies.

    Sinon il faut regarder au niveau de tes commandes d'affichage. Tu as bien défini tes matrices de transformation ? Tu as désactivé le culling ? Tu as essayé d'afficher un bête triangle pour commencer ? Tu as désactivé les lumières ? ...

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Merci de te pencher sur mon problème. Pour être sur je préfère te montrer mon code, mais ce qui est étrange c'est que ce même code fonctionne dans un contexte "non POO"

    Alors, j'ai une classe "graphic_engine" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    class CGraphicEngine {
    	public :
    		CGraphicEngine(HWND hWnd);
    		~CGraphicEngine();
    		void frame();
     
    	private :
    		LPDIRECT3D9 d3d;
    		LPDIRECT3DDEVICE9 d3dDevice;
    		CCamera* camera;
     
    		CObject* obj_charac;
     
    		void initTransformationMatrices();
    		void initGeometry();	
    };
    Dans le constructeur je construit le device3D
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    CGraphicEngine::CGraphicEngine(HWND hWnd) {
    	cout << "\nCreation du GraphicEngine";
     
    	HRESULT hr;
     
    	this->d3d = Direct3DCreate9( D3D_SDK_VERSION);
    	D3DFORMAT format=D3DFMT_R5G6B5;
     
    	//paramètrage du device 3D
    	D3DPRESENT_PARAMETERS pp;
    	ZeroMemory( &pp, sizeof(pp) );
     
    	pp.Windowed = TRUE;
    	pp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    	pp.BackBufferFormat = D3DFMT_UNKNOWN;
    	pp.EnableAutoDepthStencil=TRUE;
    	pp.AutoDepthStencilFormat = D3DFMT_D16;
    	//pp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE; //pour désactiver la synchro verticale
     
    	hr = this->d3d->CreateDevice(D3DADAPTER_DEFAULT,
    							D3DDEVTYPE_HAL, 
    							hWnd, 
    							D3DCREATE_SOFTWARE_VERTEXPROCESSING, //peut être mis a HARDWARE
    							&pp, //nos paramètres
    							&this->d3dDevice); //le device a créer
     
    	if FAILED(hr) {
    		cout << " -- D3D Device creation error";
    	} else {
    		cout << " -- ok";
     
    		this->d3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE );
    		this->d3dDevice->SetRenderState( D3DRS_AMBIENT, 0xffffffff );
     
    		//on créé maintenant tout ce qu'il nous faut
    		this->camera = new CCamera();
    		this->initTransformationMatrices();
    		this->initGeometry();
    	}
    };
    Les matrices sont définis ainssi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    void CGraphicEngine::initTransformationMatrices() {
    	//matrice monde
    	D3DXMATRIX matWorld;
    	this->d3dDevice->SetTransform(D3DTS_WORLD, &matWorld);
     
    	//matrice point de vue, d'après notre caméra
    	D3DXMATRIXA16 matView;
    	D3DXMatrixLookAtLH( &matView,
    			    &this->camera->viewPointVect,
    			    &this->camera->lookAtVect,
    			    &this->camera->upVect );
    	this->d3dDevice->SetTransform(D3DTS_VIEW, &matView);
     
    	//matrice projection
    	D3DXMATRIX matProj;
    	float aspect=640/480;
    	D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, aspect, 1.0f, 100.0f );
    	this->d3dDevice->SetTransform(D3DTS_PROJECTION, &matProj);
     
    	cout << "\n -> matrices de tranformation ok";
    };
    Les propritétés viewPointVect, lookAtVect et upVect sont des D3DXVECTOR3 définis dans ma classe Camera et initialisés par defaut a la valeur que je souhaite.

    La géométrie est chargée par la classe Object
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class CObject {
          public :
                 CObject(IDirect3DDevice9* p_d3dDevice, CHAR* p_strFileName);
     
                 LPD3DXMESH mesh;           //le maillage en lui même
                 D3DMATERIAL9* meshMaterials;
                 LPDIRECT3DTEXTURE9* meshTextures;
                 DWORD num_materiaux;         //le nombre de matériaux
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    CObject::CObject(IDirect3DDevice9* p_d3dDevice, CHAR* p_strFileName) {
     
        LPD3DXBUFFER mtrlBuffer; //le buffer matériaux
        const TCHAR* strPrefix = "data/";
        TCHAR strTexture[MAX_PATH];
        //fonction loadMesh ;)
     
        if (FAILED(D3DXLoadMeshFromX( p_strFileName, 
                            D3DXMESH_SYSTEMMEM, 
                            p_d3dDevice, //le device
                            NULL, 
                            &mtrlBuffer, //on sauve les matérieux
                            NULL,
    						&this->num_materiaux, //le nombre de matériaux
                            &this->mesh ))) //l'objet mesh
             {
    			 std::cout << "\n/!\\ Fichier " << p_strFileName << " non trouvee";
             }
     
        //chargement des matériaux                    
        D3DXMATERIAL* materials = (D3DXMATERIAL*)mtrlBuffer->GetBufferPointer();
     
        this->meshMaterials = new D3DMATERIAL9[this->num_materiaux];
        this->meshTextures  = new LPDIRECT3DTEXTURE9[this->num_materiaux];                    
     
        for( DWORD i=0; i<this->num_materiaux; i++ ) //pour chaque matériaux (et objet donc)
              {
                    // Copy the material
                    this->meshMaterials[i] = materials[i].MatD3D;
                    // Set the ambient color for the material (D3DX does not do this)
                    this->meshMaterials[i].Ambient = this->meshMaterials[i].Diffuse;
                    this->meshTextures[i] = NULL;
     
                    //si un fichier de texture est défini
                    if( materials[i].pTextureFilename != NULL && lstrlen(materials[i].pTextureFilename) > 0 )
                        {
                         StringCchCopy( strTexture, MAX_PATH, strPrefix );
                         StringCchCat( strTexture, MAX_PATH, materials[i].pTextureFilename );
     
                         if (FAILED (D3DXCreateTextureFromFileA( p_d3dDevice, 
                                                                strTexture, 
                                                                &this->meshTextures[i] )))
                                 {
    								 std::cout << "\n/!\\ Fichier " << strTexture << " non trouvee"; 
                                 }
                         }
              };                               
        mtrlBuffer->Release();  
     
    };
    Ensuite la méthode "frame()" de graphic_engine est appelé par la fonction MsgProc définit a la création de la fenêtre window.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    void CGraphicEngine::frame() {
    	this->d3dDevice->Clear(0,  //Number of rectangles to clear
    					 NULL, //Pointer to the rectangles to clear
    					 D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER,   //What to clear
    					 0x00000000, //Colour to clear to (AARRGGBB)
    					 1.0f,  //Value to clear ZBuffer to
    					 0 );   //Stencil clear value
     
    	this->d3dDevice->BeginScene();
     
    	//la scène elle même
         for( DWORD i=0; i<this->obj_charac->num_materiaux; i++ )
            {
                // Set the material and texture for this subset
    			this->d3dDevice->SetMaterial( &this->obj_charac->meshMaterials[i] );
                this->d3dDevice->SetTexture( 0, this->obj_charac->meshTextures[i] );
     
                // Draw the mesh subset
                this->obj_charac->mesh->DrawSubset( i );
            }
     
     
    	this->d3dDevice->EndScene();
     
    	this->d3dDevice->Present(NULL,  //Source rectangle to display, NULL for all of it
                                 NULL,  //Destination rectangle, NULL to fill whole display
                                 NULL,  //Target window, if NULL uses device window set in CreateDevice
                                 NULL );//Dirty Region, set it to NULL
    };
    Ce code se compile sans problèmes donc, mais je n'ai rien a l'écran. J'ai essayé de faire afficher dans la méthode "frame()" la propriété "num_materiaux" de mon objet, pas de problème je récupère bien la bonne valeur, mon fichier maillage est donc bien chargé. J'ai testé la valeur de renvoi de DrawSubset, et pas de problèmes!
    Sinon oui, j'ai réussi a faire afficher un triangle.

  8. #8
    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 : 40
    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
    Sinon oui, j'ai réussi a faire afficher un triangle.
    Donc on peut restreindre le contexte à la classe CObject

    J'ai regardé vite fait, a priori j'ai rien vu de bizarre.

  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    :/
    J'aurais aimé que tu y trouve une erreur
    Je poursuivrais les tests ce soir mais je ne comprend vraiment pas. Si tu as le temps et Visual c++ 2005, j'ai mis dans l'archive tout mon code, le fichier .x, la texture (attention j'ai vraiment pas pris plus que 5 minutes pour le faire) et le fichier projet, , si tu veut y jeter un oeil...
    Merci

  10. #10
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    CObject vient d'être testé, le problème ne vient pas de là, c'est très étrange!
    Je viens d'essayer en recréant le projet sous DevC++ (sais t'on jamais), pareil, compilation ok, pas d'erreurs mais écran noir.
    J'ai encore vérifié les valeurs de sortie, tout semble normal, c'est comme si tout se passai bien mais que la lumière été éteinte ou que la caméra pointait dans le vide, mais j'ai vérifié :/
    help

    Voici ce qu'il m'affiche quand je lance le programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    'Appli.exe' : Chargé 'F:\Realisations\C _ C++\DirectX\Appli\debug\Appli.exe', Le fichier binaire n'a pas été généré avec les informations de débogage.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\ntdll.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\kernel32.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\user32.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\gdi32.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\d3d9.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\d3d8thk.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\msvcrt.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\advapi32.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\rpcrt4.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\version.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\winmm.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\d3dx9_34.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\uxtheme.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\Program Files\ATI Tray Tools\raphook.dll', Le fichier binaire n'a pas été généré avec les informations de débogage.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\shlwapi.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\psapi.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\avifil32.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\ole32.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\msacm32.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\msvfw32.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\shell32.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\comctl32.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll', Aucun symbole n'a été chargé.
    HookingF:\REALISATIONS\C _ C++\DIRECTX\APPLI\DEBUG\APPLI.EXERPH:Injecting code at start up
    done...
    RPH:D3D9_DLL Hooking
    Before intercept
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\d3d9d.dll', Aucun symbole n'a été chargé.
    'Appli.exe' : Chargé 'C:\WINDOWS\system32\d3dx9d_33.dll', Aucun symbole n'a été chargé.
    D3D9 Helper: Enhanced D3DDebugging disabled; Application was not compiled with D3D_DEBUG_INFO
    Direct3D9: (INFO) :======================= Hal SWVP device selected
     
    'Appli.exe' : Chargé 'C:\Program Files\Kaspersky Lab\Kaspersky Anti-Virus 7.0\miscr3.dll', Aucun symbole n'a été chargé.
    Le thread 'Thread Win32' (0xa88) s'est arrêté avec le code 0 (0x0).
    Direct3D9: (INFO) :Using P4 PSGP
    Pendant l'éxecution rien

    Puis en quittant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    Le thread 'Thread Win32' (0xa58) s'est arrêté avec le code 0 (0x0).
    Direct3D9: (ERROR) :    [0] : Address 00E1E4CB
    Direct3D9: (ERROR) :    [1] : Address 00E1E59B
    Direct3D9: (ERROR) :    [2] : Address 00E1E440
    Direct3D9: (ERROR) :    [3] : Address 00E12DB4
    Direct3D9: (ERROR) :    [4] : Address 4FD1AF2E
    Direct3D9: (ERROR) :    [5] : Address 00402131
    Direct3D9: (ERROR) :    [6] : Address 7C816FD7
    Direct3D9: (ERROR) :    [7] : Address 00000000
    Direct3D9: (ERROR) :    [8] : Address 00000000
    Direct3D9: (ERROR) :    [9] : Address 00000000
    Direct3D9: (ERROR) :    [10] : Address 00000000
    Direct3D9: (ERROR) :    [11] : Address 00000000
    Direct3D9: (ERROR) :    [12] : Address 00000000
    Direct3D9: (ERROR) :    [13] : Address 00000000
    Direct3D9: (ERROR) :    [14] : Address 00000000
    Direct3D9: (ERROR) :    [15] : Address 00000000
    Direct3D9: (ERROR) :    [0] : Address 00E150D4
    Direct3D9: (ERROR) :    [1] : Address 00E15EBF
    Direct3D9: (ERROR) :    [2] : Address 00E165F8
    Direct3D9: (ERROR) :    [3] : Address 00E12DD5
    Direct3D9: (ERROR) :    [4] : Address 4FD1AF2E
    Direct3D9: (ERROR) :    [5] : Address 00402131
    Direct3D9: (ERROR) :    [6] : Address 7C816FD7
    Direct3D9: (ERROR) :    [7] : Address 00000000
    Direct3D9: (ERROR) :    [8] : Address 00000000
    Direct3D9: (ERROR) :    [9] : Address 00000000
    Direct3D9: (ERROR) :    [10] : Address 00000000
    Direct3D9: (ERROR) :    [11] : Address 00000000
    Direct3D9: (ERROR) :    [12] : Address 00000000
    Direct3D9: (ERROR) :    [13] : Address 00000000
    Direct3D9: (ERROR) :    [14] : Address 00000000
    Direct3D9: (ERROR) :    [15] : Address 00000000
    Direct3D9: (ERROR) :    [0] : Address 00E1514B
    Direct3D9: (ERROR) :    [1] : Address 00E15EBF
    Direct3D9: (ERROR) :    [2] : Address 00E165F8
    Direct3D9: (ERROR) :    [3] : Address 00E12DD5
    Direct3D9: (ERROR) :    [4] : Address 4FD1AF2E
    Direct3D9: (ERROR) :    [5] : Address 00402131
    Direct3D9: (ERROR) :    [6] : Address 7C816FD7
    Direct3D9: (ERROR) :    [7] : Address 00000000
    Direct3D9: (ERROR) :    [8] : Address 00000000
    Direct3D9: (ERROR) :    [9] : Address 00000000
    Direct3D9: (ERROR) :    [10] : Address 00000000
    Direct3D9: (ERROR) :    [11] : Address 00000000
    Direct3D9: (ERROR) :    [12] : Address 00000000
    Direct3D9: (ERROR) :    [13] : Address 00000000
    Direct3D9: (ERROR) :    [14] : Address 00000000
    Direct3D9: (ERROR) :    [15] : Address 00000000
    Direct3D9: (ERROR) :    [0] : Address 00E151C2
    Direct3D9: (ERROR) :    [1] : Address 00E15EBF
    Direct3D9: (ERROR) :    [2] : Address 00E165F8
    Direct3D9: (ERROR) :    [3] : Address 00E12DD5
    Direct3D9: (ERROR) :    [4] : Address 4FD1AF2E
    Direct3D9: (ERROR) :    [5] : Address 00402131
    Direct3D9: (ERROR) :    [6] : Address 7C816FD7
    Direct3D9: (ERROR) :    [7] : Address 00000000
    Direct3D9: (ERROR) :    [8] : Address 00000000
    Direct3D9: (ERROR) :    [9] : Address 00000000
    Direct3D9: (ERROR) :    [10] : Address 00000000
     
    ...et encore et encore...
     
    Direct3D9: (ERROR) :    [9] : Address 00000000
    Direct3D9: (ERROR) :    [10] : Address 00000000
    Direct3D9: (ERROR) :    [11] : Address 00000000
    Direct3D9: (ERROR) :    [12] : Address 00000000
    Direct3D9: (ERROR) :    [13] : Address 00000000
    Direct3D9: (ERROR) :    [14] : Address 00000000
    Direct3D9: (ERROR) :    [15] : Address 00000000
    D3D9: UnInjectLe programme '[3664] Appli.exe: Natif' s'est arrêté avec le code 0 (0x0).
    D'où viennent ces erreurs? j'ai fait des release partout où je pouvait, peut tu jeter un oeil au projet? merci

  11. #11
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    J'ai trouvé!

    Oulala et bien ça m'en aura posé des problèmes. Ca venait de la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    void CGraphicEngine::initTransformationMatrices() {
    	//matrice monde
    	D3DXMATRIX matWorld;
    	this->d3dDevice->SetTransform(D3DTS_WORLD, &matWorld);
     
    	//matrice point de vue, d'après notre caméra
    	D3DXMATRIXA16 matView;
    	D3DXMatrixLookAtLH( &matView,
    			    &this->camera->viewPointVect,
    			    &this->camera->lookAtVect,
    			    &this->camera->upVect );
    	this->d3dDevice->SetTransform(D3DTS_VIEW, &matView);
     
    	//matrice projection
    	D3DXMATRIX matProj;
    	float aspect=640/480;
    	D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, aspect, 1.0f, 100.0f );
    	this->d3dDevice->SetTransform(D3DTS_PROJECTION, &matProj);
     
    	cout << "\n -> matrices de tranformation ok";
    };
    Il manquai 1 ligne : D3DXMatrixIdentity(&matWorld); après la déclaration et avant le setTransform...

    ou ? arf

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

Discussions similaires

  1. [CS3] pas d'erreur mais ?
    Par info_sara dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 28/05/2008, 18h06
  2. Problème de compilation Ogre -- Message d'erreur
    Par chroufa dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 18/03/2008, 20h55
  3. pas d'erreur mais update qui marche pas
    Par gloppy dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/12/2006, 16h49
  4. Réponses: 2
    Dernier message: 17/05/2006, 14h23

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