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

Irrlicht Discussion :

getTexture plante sans raison


Sujet :

Irrlicht

  1. #1
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut getTexture plante sans raison
    Bonjour,

    Après être passé de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return ! ( jeux->m_map ? jeux->m_map->onEvent(event) : true );
    à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return ! ( jeux->m_map ) ? jeux->m_map->onEvent(event) : true;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    driver->getTexture("ressources/intro1.png");
    plante (Le programme a cessé de fonctionner) sans raison apparente dès que je le place après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    device->setEventReceiver(&event);
    alors que le return ! ... n'a jamais été exécuté pour l'instant.

    Voici le code minimal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include<iostream>
    #include "jeux.h"
     
    int main(void)
    {
        LD::Jeux jeux(800,600, L"Last Dungeon - ");
        return 0;
    }

    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
    #ifndef JEUX_H
    #define JEUX_H
     
    #include <irrlicht/irrlicht.h>
     
    #include "eventrecever.h"
     
    namespace LD
    {
        class Map;
        struct Preferances;
        class Sommaire;
     
        /** @brief Classe permettant de lancer le jeux */
        class Jeux
        {
        public:
            /** @brief Initialise la fenêtre de jeux.
              @param irr::u32 x  : largeur de la fenêtre
              @param irr::u32 y : hauteur de la fenêtre
              @param const wchar_t * titre : titre de la fenetre à laquelle sera concaténée la version */
            Jeux(irr::u32 x, irr::u32 y, const wchar_t * titre);
     
            virtual ~Jeux();
     
            /** @brief Permet de changer la map */
            void setMap(Map *);
     
            /** @brief Démarre le Jeux.
                /!\ Avant de lancer cette méthode, pensez bien à définir les actions clavier et souris */
            void start(void);
     
            /** @brief Permet d'obtenir le driver */
            inline irr::video::IVideoDriver * getDriver(void){ return driver; }
     
            //TODO changeCamera();
            //TODO changeCurseur();
            //TODO changeGui();
        private :
            /** @brief détecte les autres évènements */
            void detectAutreEvent(void);
     
            /** @brief Heu... */
            irr::IrrlichtDevice *device;
     
            /** @brief driver */
            irr::video::IVideoDriver* driver;
     
            /** @brief sceneManager */
            irr::scene::ISceneManager *sceneManager;
     
            /** @brief reçoit les évents */
            EventRecever event;
     
            /** @brief fond */
            Map * m_map;
     
            /** @brief Preferances du joueur */
            Preferances * preferances;
     
        public :
            /** @brief permet de changer de map */
            Sommaire * sommaire;
     
            /** @brief gui */
          //  irr::gui::IGUIEnvironment * gui;
     
            friend class EventRecever;
        };
    }
    #endif // JEUX_H

    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
    namespace LD
    {
    Jeux::Jeux(irr::u32 x, irr::u32 y, const wchar_t * titre) :
            //TODO voir pour la vsync (avant-dernier argument), true ou false ?
            device(irr::createDevice(irr::video::EDT_OPENGL, irr::core::dimension2d<irr::u32>(x,y), 32, false, true, false, 0) ),
            driver(device->getVideoDriver() ),
            sceneManager(device->getSceneManager() ),
            event(this)/*,
            m_map(NULL),
            preferances(new Preferances() ),
           // sommaire(new Sommaire(this) ),
           // gui(NULL) */
        {
     
            /* Ajout d'une caméra par défaut */
            sceneManager->addCameraSceneNode (0, irr::core::vector3df (0,0,0), irr::core::vector3df (5,0,0));
     
            /* Ajout de la reception d'event */
            device->setEventReceiver(&event);
     
     
            std::cout << driver << "\n" << sceneManager << "\n" << device << std::endl;
            driver->getTexture("ressources/intro1.png");
            std::cout << "tot" << std::endl;
           }
    }
    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
    #ifndef EVENTRECEVER_H
    #define EVENTRECEVER_H
     
    #include <irrlicht/irrlicht.h>
     
    namespace LD
    {
        class Jeux;
     
        class EventRecever : public irr::IEventReceiver
        {
        public:
            /** @param Jeux * jeux : instance de jeux qui a créé EventRecever */
            EventRecever(Jeux * jeux);
            /** @brief Capte les évènements
                @param const irr::SEvent &event : évènement reçu */
            bool OnEvent(const irr::SEvent &event);
        private :
            /** @brief createur */
            Jeux * jeux;
        };
    }
    #endif // EVENTRECEVER_H

    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
    #include <iostream>
     
    #include "eventrecever.h"
    #include "jeux.h"
    #include "map.h"
     
    namespace LD
    {
        EventRecever::EventRecever(Jeux * jeux) : jeux(jeux)
            {
            }
     
        bool EventRecever::OnEvent(const irr::SEvent &event)
        {
            return ! ( jeux->m_map ) ? jeux->m_map->onEvent(event) : true;
        }
    }
    Irrlicht Engine version 1.7.1
    Personal (Build 7600)
    Using renderer: OpenGL 2.1.0
    Intel(R) HD Graphics: Intel
    OpenGL driver version is 1.2 or better.
    GLSL version: 1.2
    Irrlicht Engine version 1.7.1
    Personal (Build 7600)
    Using renderer: OpenGL 2.1.0
    Intel(R) HD Graphics: Intel
    OpenGL driver version is 1.2 or better.
    GLSL version: 1.2
    0xa39fe0
    0xa3bfb0
    0x2581498
    Sachant que si je remplace mon getTexture par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::cout << driver->getScreenSize().Height << std::endl;
    ça ne plante pas et je vois la bonne dimension.

    Est-ce que vous auriez une idée? Je sèche complètement...

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    J'ai enfin réussi à faire fonctionner mon débugguer, problème résolu. Apparemment lors d'un getTexture, la fonction OnEvent est appelée.
    C'est un peu bizarre...

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

Discussions similaires

  1. [XL-2007] VBA Excel plante sans raison.
    Par djames37 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/04/2015, 14h16
  2. L'interface plante sans raison apparente
    Par mamelouk dans le forum Qt
    Réponses: 6
    Dernier message: 03/10/2008, 08h12
  3. Réponses: 3
    Dernier message: 28/01/2008, 13h44
  4. build.xml qui plante sans raison
    Par marc olivier dans le forum EDI et Outils pour Java
    Réponses: 9
    Dernier message: 17/05/2006, 18h48
  5. ma base gonfle sans raison !!!
    Par hiul dragonfel dans le forum Access
    Réponses: 6
    Dernier message: 20/06/2005, 10h00

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