Historique des modifications - Message

Message #6343

Sujet: plusieurs fenêtres non simultanées?


TypeDateAuteurContenu
Dernière modification19-04-2009 07:39:36johnplayer
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 demainbig_smile. Eh, hop! Une facture de plus en moins!( notez le subtile mélange de superlatifswink).
Création du message19-04-2009 07:33:42johnplayer
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 demainbig_smile. Eh, hop! Une facture de plus en moins!( notez le subtile mélange de superlatifswink).

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
127 invités en ligne
membre en ligne: -
RSS Feed