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 :

#define D3D_DEBUG_INFO


Sujet :

DirectX

  1. #1
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut #define D3D_DEBUG_INFO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #define D3D_DEBUG_INFO
    J'utilise ce define pour accéder aux différents éléments créés par COM dans la fenêtre de débuggeur.

    Et bien bizarrement depuis que j'ai utilisé "start with direct3d debugging" de mon compil Visual C++, j'ai des erreurs d'accès aux interfaces COM dans mes programmes en mode debug mais pas en mode release. Evidemment puisque en mode release D3D_DEBUG_INFO n'est pas définit.

    Est-ce que c'est un bug, ou il y a une manipulation à faire quelque part.

  2. #2
    Membre régulier
    Inscrit en
    Mai 2003
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 99
    Points : 115
    Points
    115
    Par défaut
    Il faut switcher DX en debug runtime.
    Laurent -- http://jeux-directx.com/

  3. #3
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Bonjour Laurent-USA ça fait plaisir. Je t'ai envoyé un mail aujourd'hui, une question au sujet de ton livre .

    Pour mon histoire, il s'avère que je n'ai pas accès aux informations de débugging de D3D_DEBUG_INFO.

    En effet dans la fenêtre de débug j'ai les messages suivants:

    • Direct3D9: :====> ENTER: DLLMAIN(011416f0): Process Attach: 000004b0, tid=0000064c
      Direct3D9: :====> EXIT: DLLMAIN(011416f0): Process Attach: 000004b0
      Direct3D9: (INFO) irect3D9 Debug Runtime selected.
      D3D9 Helper: Enhanced D3DDebugging disabled; Application was not compiled with D3D_DEBUG_INFO
      Direct3D9: (INFO) :======================= Hal SWVP device selected

      Direct3D9: (INFO) :HalDevice Driver Style 9

      Direct3D9: :BackBufferCount not specified, considered default 1
      Direct3D9: oneExclusiveMode


    Ce qui est bizarre c'est que j'ai des infos de débug sur d3d9, mais j'ai aussi cette ligne étrange
    • D3D9 Helper: Enhanced D3DDebugging disabled; Application was not compiled with D3D_DEBUG_INFO


    J'ai vu sur les groupes qu'avec la version managée de directx on ne pouvait pas utiliser cette option.
    Pourtant j'ai des infos?????

    Est-ce que ça veut dire que je dois utiliser un ancien SDK de directX.
    Est-ce que cette option ne sert à rien, bref je suis un peu perdu!!

    Si j'active l'option "break on d3derror" du panneau "propriérés de directX" j'ai ce message dans la fenêtre de débug:

    • Direct3D9: (ERROR) :Invalid format specified for texture


    Mais si je désactive l'option, le programme ne présente pas d'erreur apparente. Comment tenir compte de ce message. Est-ce juste un warning ou une erreur réelle?

    Merci à vous.

  4. #4
    Membre régulier
    Inscrit en
    Mai 2003
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 99
    Points : 115
    Points
    115
    Par défaut
    Application was not compiled with D3D_DEBUG_INFO :

    Le build n'a pas ete fait dans les regles de l'art... Il doit y avoir des trucs en toujours en debug "normal". Essayer :

    To enable debug information, the #define must get built before the D3d9.h file. If you are running a software development kit (SDK) sample, you can see this in Dxstdafx.h (which affects all the C++ samples). You must also be running the debug Direct3D runtime (which can be enabled from the Control Panel if necessary).

    Direct3D9: (ERROR) :Invalid format specified for texture

    Pour celle la, le seul cas que je connaisse ou c'est ( presque ) normal, c'est avec le VMR9 . Dans les autres cas, il y a probablement un probleme. Probablement des histoires de formats de backbuffer ou de surfaces mal declarees.
    Laurent -- http://jeux-directx.com/

  5. #5
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    L'histoire de faire l'include avant d3d9.h, je l'avais bien vu. J'utilise aussi un en-tête précompilé et il n'y a pas d'inquiétude, le #define est en premier. Mais bon je vais pas trop me prendre la tête dessus finalement, c'est un peu trop obscur pour moi.

    Sinon effectivement j'utilise la vmr9. Je texture des vidéos dans un environnement 3D.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 108
    Points : 128
    Points
    128
    Par défaut
    Il est peut-être aussi nécessaire de devoir recompiler TOUS le projet après avoir ajouter ce DEFINE.

  7. #7
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Je vois très bien ce que tu veux dire. En fait tous mes headers sont déclarés dans le fichier d'en-tête précompilé, même mes en-tête perso. Si je modifie un seul header alors le compilateur recréé l'en-tête précompilé (comportement par défaut).

    De plus le #define est bien situé avant tous les headers directX. Comme je l'ai dit le probléme pourrait venir des fichiers managés de directX. Je n'en ai pas confirmation à l'heure actuelle. De plus je n'utilise pas le code managé mais les fichiers oui (dll, .h, .lib, etc...).

    Je vais tenter une recompilation avec un SDK plus ancien, je verrais bien ce que ça donne.

  8. #8
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Je crois que j'ai compris. Le d3debuginfo est fonctionnel. Le message d'erreur n'est là que pour signaler qu'il exécute une partie du code qui ne tiens pas compte de ce #define comme par exemple le header tchar.h (c'est un exemple bidon).

    Les erreurs d'exécution que je peux rencontrer dans mon programme sont dues au comportement par défaut du débugeur de directX, j'ai comme l'impression que la moindre petite incohérence est considérée comme une erreur.

    Donc d3debuginfo c'est bien pour voir ce qu'il se passe en profondeur mais c'est inutilisable pour tester un programme dans sa globalité.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 15/02/2005, 19h02
  2. INSO Filter : "USER-defined exception" avec ctx_do
    Par Wiztiti dans le forum Oracle
    Réponses: 2
    Dernier message: 01/06/2004, 16h14
  3. USER DEFINE FONCTION : PB éxécution requête
    Par juelo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/01/2004, 11h12
  4. Define sur plusieurs lignes
    Par Gogoye dans le forum C
    Réponses: 6
    Dernier message: 06/10/2003, 11h45
  5. define avec GCC.
    Par vagabon dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 12/06/2003, 14h04

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