Historique des modifications - Message

Message #2843

Sujet: Gros problème d'affichage


Type Date Auteur Contenu
Création du message 17-08-2007 21:54:17 vrag
bonjour tout le monde,

voilà j'ai un problème avec mon code et je ne sais pas comment le résoudre. J'ai posé la question sur le forum du siteduzero mais le problème n'a pas été résolu.
Comme il concerne irrlicht je vais maintenant vous le présenter.
J'ai une classe afficherImage qui doit charger une image et récupérer sa position. Mais il doit y avoir un problème quelque part parce que quand je veux récupérer la position de l'image dans la boucle de rendu de mon main, ma compilation plante.
Voici mon code:

main.cpp

#include <irrlicht.h>
#include <iostream>
#include "main.hpp"

using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
using namespace std;

AfficherImage* afficherImage;//C'est la seule chose qui est dans le main.hpp donc je le met ici

int main()
{
    video::E_DRIVER_TYPE driverType = video::EDT_OPENGL;

        IrrlichtDevice *Device = createDevice(EDT_SOFTWARE, dimension2d<s32>(800, 600), 16,
                        false, false, false, 0);

    if (Device == 0)
    return 1; // could not create selected driver.

        Device->setWindowCaption(L"Equilibrum : La malediction");

        IVideoDriver* driver = Device->getVideoDriver();
        ISceneManager* smgr = Device->getSceneManager();
        IGUIEnvironment* guienv = Device->getGUIEnvironment();

    afficherImage->afficherMenu();

        Device->setResizeAble(true);


        while(Device->run())
        {
            u32 time = Device->getTimer()->getTime();

                driver->beginScene(true, true, SColor(0,0,0,0));

        driver->draw2DImage(afficherImage->get_interfaceMenu(), afficherImage->get_rectangle(),
        SColor (255,255,255,255), true);

        //pour afficher les positions du curseur dans la barre de titre :
        core::position2d<s32> mouse = Device->getCursorControl()->getPosition();

        //pour afficher les positions du curseur dans la barre de titre :
        core::stringw titre = L"Positions de la souris :";
        titre += mouse.X;
        titre += L"-";
        titre += mouse.Y;

        Device->setWindowCaption(titre.c_str());

                smgr->drawAll();
                guienv->drawAll();

                driver->endScene();
        }

        Device->drop();

        return 0;
}

afficherImage.cpp

#include <irrlicht.h>
#include <iostream>
#include "afficherImage.hpp"

using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
using namespace std;

int AfficherImage::afficherMenu()
{
    interfaceMenu = driver->getTexture ("Interface/interface_hors_jeu/menu_principale/interfaceMenu1.PNG");
    if (interfaceMenu == 0)
    {
        cout << "probleme de chargement de l'image" << endl;
        return 1;
    }

    //La transparence pour le fond
    driver->makeColorKeyTexture (interfaceMenu, video::SColor (0,255,0,255));

    //On récupère les dimensions de l'image
    dimension2d<s32> taille = interfaceMenu->getSize ();

    //On crée une position qui va représenter l'origine
    position2d<s32> position0;
    position0.X = 0;
    position0.Y = 0;
    //Et maintenant la position du coin bas droit du rectangle en se servant des dimensions de l'image
    position2d<s32> position1;
    position1.X = taille.Width;
    position1.Y = taille.Height;

    //On crée la variable rectangle
    rect<s32> rectangle;
    rectangle.UpperLeftCorner = position0;
    rectangle.LowerRightCorner = position1;
}

afficherImage.hpp

#include <irrlicht.h>
#include <iostream>

#ifndef DEF_AFFICHER_IMAGE
#define DEF_AFFICHER_IMAGE

class AfficherImage
{
  public:

    AfficherImage();
    ~AfficherImage();

    int afficherMenu();

    irr::core::position2d<irr::s32> get_position0()
    {
        return position0;
    }
    irr::core::position2d<irr::s32> get_position1()
    {
        return position1;
    }
    irr::core::rect<irr::s32> get_rectangle()
    {
        return rectangle;
    }

    irr::video::ITexture* get_interfaceMenu()
    {

        return interfaceMenu;
    }



    private:

    irr::video::IVideoDriver* driver;
    irr::video::ITexture *interfaceMenu;
    irr::core::position2d<irr::s32> position0;
    irr::core::position2d<irr::s32> position1;
    irr::core::rect<irr::s32> rectangle;


};

#endif

et voici le rapport d'erreur:

main.cpp:54: error: no matching function for call to `irr::video::IVideoDriver::draw2DImage(irr::video::ITexture*, irr::core::rect<irr::s32>, irr::video::SColor, bool)'
C:/Program Files/CodeBlocks/mingw32/include/Irrlicht/IVideoDriver.h:481: note: candidates are: virtual void irr::video::IVideoDriver::draw2DImage(irr::video::ITexture*, const irr::core::position2d<irr::s32>&)
C:/Program Files/CodeBlocks/mingw32/include/Irrlicht/IVideoDriver.h:498: note: virtual void irr::video::IVideoDriver::draw2DImage(irr::video::ITexture*, const irr::core::position2d<irr::s32>&, const irr::core::rect<irr::s32>&, const irr::core::rect<irr::s32>*, irr::video::SColor, bool)
C:/Program Files/CodeBlocks/mingw32/include/Irrlicht/IVideoDriver.h:523: note: virtual void irr::video::IVideoDriver::draw2DImage(irr::video::ITexture*, const irr::core::position2d<irr::s32>&, const irr::core::array<irr::core::rect<irr::s32>, irr::core::irrAllocator<irr::core::rect<irr::s32> > >&, const irr::core::array<irr::s32, irr::core::irrAllocator<irr::s32> >&, irr::s32, const irr::core::rect<irr::s32>*, irr::video::SColor, bool)
C:/Program Files/CodeBlocks/mingw32/include/Irrlicht/IVideoDriver.h:535: note: virtual void irr::video::IVideoDriver::draw2DImage(irr::video::ITexture*, const irr::core::rect<irr::s32>&, const irr::core::rect<irr::s32>&, const irr::core::rect<irr::s32>*, irr::video::SColor*, bool)

Sa fait trois jour que j'ai ce problème et je ne vois aucune réponse. Est-ce que vous pourriez m'aider svp ?

Merci d'avance.

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
144 invités en ligne
membre en ligne: -
RSS Feed