Voila le code :
bool Bibliotheque::load_config()
{
device = createDevice(); // device est une variable de la classe Bibliotheque ainsi que fileSys
fileSys = device->getFileSystem(); // device est la pour avoir fileSys (pour la lecture xml)
// lecture du fichier config.xml et stockage dans les variables
int a = 0;
// vérification de l'existance du fichier
if (!(fileSys->existFile(stringc("Configuration/config.xml").c_str())))
return false;
// ouverture du fichier en lecture
IXMLReader *reader = fileSys->createXMLReader(stringc("Configuration/config.xml").c_str());
// boucle de lecture
while(reader && reader->read())
{
if(EXN_ELEMENT == reader->getNodeType())
{
if(stringw("Graphismes") == reader->getNodeName())
{
parametres.AntiAlias = vsBool(reader->getAttributeValueAsInt(L"AA"));
parametres.Bits = ((reader->getAttributeValueAsInt(L"bits") + 1) * 16);
parametres.DriverType = EDT_DIRECT3D9;
parametres.EventReceiver = 0;
parametres.Fullscreen = vsBool(reader->getAttributeValueAsInt(L"fullscreen"));
parametres.HighPrecisionFPU = true;
parametres.Vsync = vsBool(reader->getAttributeValueAsInt(L"vsync"));
switch(reader->getAttributeValueAsInt(L"resolution"))
{
case 0 :
{
parametres.WindowSize = dimension2d<s32>(640,480);
break;
}
case 1 :
{
parametres.WindowSize = dimension2d<s32>(800,600);
break;
}
case 2 :
{
parametres.WindowSize = dimension2d<s32>(1024,768);
break;
}
case 3 :
{
parametres.WindowSize = dimension2d<s32>(1280,1024);
break;
}
}
lod = reader->getAttributeValueAsInt(L"lod");
qualite_texture = reader->getAttributeValueAsInt(L"texture");
} // chargement des parametres graphiques
}// if
}// while
//libération du fichier
reader->drop();
// liberation de la fenetre
device->drop(); // BIEN QUE JE LA DROP ELLE RESTE PRESENTE ET SI J'UTILISE closeDevice() JE FERME CETTE FENETRE EST CELLE
// QUE J'OUVRE DERRIERE
return true;
}
bool Bibliotheque::create_window()
{
device = createDeviceEx(parametres); // VOICI LA 2e FENETRE, CELLE DU JEU
if (device)
return true;
else
return false;
}
bool Bibliotheque::create_environnement()
{
driver = device->getVideoDriver();
smgr = device->getSceneManager();
env = device->getGUIEnvironment();
fileSys = device->getFileSystem();
if(driver && smgr && env && fileSys)
return true;
else
return false;
}
Donc je fais : load_config() puis create_window() et la traditionnelle boucle de rendu se trouve dans le fichier source les appelant.
J'espère que ça ira.
PS : Sinon pour mes cheveux, ça fais que je n'aurais pas besoin d'aller au coiffeur demain

. Eh, hop! Une facture de plus en moins!( notez le subtile mélange de superlatifs

).