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

XNA/Monogame Discussion :

[XNA] Problème avec les Effects


Sujet :

XNA/Monogame

  1. #1
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut [XNA] Problème avec les Effects
    Salut, bon j'ai un soucis trés étrange avec XNA. J'ai fais quelques tests avec cette nouvelle API aujourd'hui et les effects me pose un gros problème...
    J'ai réduit le code au minimum pour que vous ayez pas trop de lecture

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private Effect Shader;
     
    public nxShader(string Source)
    {
    Shader = NX.Library.ContentManager.Load<Effect>(Source);                 
    Shader.Parameters["WorldViewProjection"].SetValue(Matrix.Identity);
    Shader.CurrentTechnique = Shader.Techniques["PRE_ZPASS_SIMPLE"];
    bool TestTechnique = Shader.CurrentTechnique.Validate();
    }
    Ici aucun problème le shader est bien chargé et je peux modifier sans problème les variables de celui-ci, en l'occurence une matrice. "CurrentTechnique" est bien initialisée et le test de validation me retourne que c'est bon.

    Aprés un petit tour par d'autres classes, je reviens dans la classe contenant mon shader qui n'a pas bougée depuis tout à l'heure. J'appelle une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void UpdateTransformations(Matrix World)
    {
    Shader.Parameters["WorldViewProjection"].SetValue(Matrix.Identity);
    }
    et là... catastrophe !!
    Alors soit j'ai le droit à un bel access violation soit un message me spécifiant poliment que ma variable est à "null".
    Aprés enquête il se trouve que l'effect est toujours correctement initialisé. Par contre, bizarrement, "CurrentTechnique" qui est la technique actuellement active (normalement) et qui était activée et validée lors de la construction est soit à null ou retourne un access violation... d'où l'erreur ici.

    Impossible de résoudre ce problème. Ca fait 3 heures que j'essaye tout un tas de choses mais sans aucuns résultats. Si quelqu'un à une idée ou saurait me mettre sur la voie je lui en serait trés reconnaissant.

  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 : 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
    Il se passe quoi exactement entre le premier appel et le second ? Tu as essayé d'utiliser le runtime debug de DirectX ?

  3. #3
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut
    Citation Envoyé par Laurent Gomila
    Il se passe quoi exactement entre le premier appel et le second ? Tu as essayé d'utiliser le runtime debug de DirectX ?
    Ben j'ai essayé de débuger mais rien de trés concluant
    Ceci dit j'ai un peu progressé dans la mesure ou j'ai trouvé le coupable. En fait je comprends pas vraiment pourquoi mais le fait de lancer la méthode "run" du framework xna fait exploser toutes les initialisations dépendantes du device directx que tu as faites avant d'exécuter cette commande. Si tu les fait aprés elles sont conservées.

  4. #4
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut
    Arf bon, c'est vraiment n'importe quoi leur truc là !!
    En fait lorsque tu lances le "run" du framework xna (que tu es obligé de lancer), les ressources en relation avec le device d'avant l'appel ne sont plus valides.
    Le problème c'est que du coup du doit initialiser toutes tes ressources dans les fonctions "LoadGraphicsContent" ou "Initialise" en les surchargeant.
    Resultat : impossible pour l'instant de séparer la classe dérivant du framework xna de l'initialisation des ressources Compètement abérant !

  5. #5
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut
    Puffff ben voilà c'est ca... l'initialisation DOIT se faire aprés le "run" mais comme tu peux plus sortir de la boucle qu'engendre le "run" une fois que tu l'as lancé tu peux plus rien controler depuis une autre classe... je le dit pour ceux qui aurait le problême.
    C'est tellement managé que tu n'as plus aucune marge de manoeuvre... je comprends pas vraiment pourquoi ils ont géré le truc comme ça. Mais bon je vais quand même me pencher sur le problème, je peux pas croire qu'il n'y pas un moyen de déporter l'instance du framework dans une DLL !

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

Discussions similaires

  1. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  2. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par davidinfo dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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