Aktuelle Zeit: 29.12.2024, 11:32

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: ingame settings ändern.
BeitragVerfasst: 14.01.2008, 14:31 
Offline
Benutzeravatar

Registriert: 04.01.2008, 11:52
Beiträge: 29
Weiss jemand wie ich ingame die screen resolution ändern kann?

wenn ich das da mit dem fullscreenflag versuche, dann gehts zwar im fullscreen (ein mal) aber nicht mehr im windowed mode. desweiteren wird jedesmal eine neue instanz erzeugt:

device->drop();
device->create(...,fullscreenflag);

[edit]
anscheinend gehts doch aber der guieventreceiver macht nicht mehr mit.
also muss ich wissen, wie ich einen eventreceiver de-registrieren kann um ihn dann wieder zu registrieren..

[edit2]
also im fullscreen gehts. es wird aber immer noch jedesmal eine neue instanz erzeugt. in windowed switcht es dann zu einer alten instanz, in fullscreen anscheinend nicht...

mit closeDevice kann ich zwar ein neues device erstellen, ohne neue instanz, aber das löscht sich dann auch gleich wieder. (konsolen output.)

wie kann ich das machen, damits auch richtig geht?


Nach oben
 Profil  
 
BeitragVerfasst: 14.01.2008, 15:28 
Offline
Benutzeravatar

Registriert: 04.01.2008, 11:52
Beiträge: 29
Ich hab die lösung.

Also drop und danach create löscht zwar das device aber erzeugt dann eine neue instanz, während es noch in der gelöschten instanz weiterläuft.

closedevice löscht auch die instanz.
wenn man danach create aufruft, dann ist irgendwie (in der hauptschleife) device != run() (wie soll ich das erklären ;) )

die lösung ist also:

Code:
device->closeDevice();
device->createDevice(...);
device->run();


run muss einfach noch einmal aufgerufen werden, bevor die schleife weiterläuft.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: ingame settings ändern.
BeitragVerfasst: 14.01.2008, 16:03 
Offline
Newsposter
Benutzeravatar

Registriert: 12.03.2007, 10:42
Beiträge: 338
Wohnort: Berlin
wenn ich mich nicht irre sollte irrlicht eigentlich alle instanzen von variablen, klassen und strukturen llllöschen wenn man das device dropt.
die bildschirm auflösung oder anderre ähnliche sachen wärend der runtime ändern geht nicht (auch bei directx nativ nicht) man ist also gezwungen sein device neu zu erstellen.

hoffe das das zu deiner lösung zusätzlich noch hilfreich ist.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: ingame settings ändern.
BeitragVerfasst: 14.01.2008, 20:56 
Offline
Benutzeravatar

Registriert: 04.01.2008, 11:52
Beiträge: 29
ja das war mir klar. deshalb hab ich ja versucht erst zu droppen, aber eben, instanz war noch da und hat im windowed modus immer in die erste instanz gewechselt, die ja eigentlich schon gelöscht worden sollen sollte sein.

wie gesagt, obiger code funktioniert. mit drop wird ja zwar alles gelöscht, aber das fenster ist irgendwie immer noch da (in der taskleiste)....mit closedevice wird auch die instanz gelöscht. dann mit createdevice neu erstellen und unbedingt run() einmal aufrufen damit die hauptschleife nicht beendet wird.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de