Historique des modifications - Message

Message #6343

Sujet: plusieurs fenêtres non simultanées?


Type Date Auteur Contenu
Dernière modification 19-04-2009 07:39:36 johnplayer
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 big_smile. Eh, hop! Une facture de plus en moins!( notez le subtile mélange de superlatifs wink).
Création du message 19-04-2009 07:33:42 johnplayer
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 big_smile. Eh, hop! Une facture de plus en moins!( notez le subtile mélange de superlatifs wink).

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
157 invités en ligne
membre en ligne: -
RSS Feed