das ist ne gute Frage, ich hab da keine offiziellen Informationen aus Softwareschmieden...
ob von der DX-API oder openGL her Objekte neu geladen werden müssen, wenn man einen Screen schließt, weiß ich nicht,
aber einige Entwicklungsumgebungen scheinen so eine Einschränkung zu haben,
weil etliche Games so aufgebaut sind, dass man merkt, dass sie sich damit herumschlagen.
Eine weitere Möglichkeit wäre, die Objekte als anderen Typ in den Hauptspeicher zu laden, und von dort aus nur diejenigen in die Grafikkarte zu laden, die gerade aktuell sind.
dieser Vorgang wäre dann sowieso dynamisch, insofern wäre es unwichtig, ob man zwischendrin den Screen zu und auf macht.
Etliche Spiele sind auch so gestrickt, dass sie eine änderung der Auflösung nur per Neustart akzeptieren, die haben die Problematik sozusagen weggeschoben.
Und dann gibts noch die, die die Menüs in einer festen Auflösung anzeigen, und das Spielgeschehen in einer anderen, nur im Hauptmenü wechselbaren.
die haben aber auch lange Ladevorgänge bevor das Game losgeht.
PS:
natürlich gibts auch ganz pervertierte Lösungsansätze, wie z.b. bei Civ3, das anscheinend gar keinen Screen verwendet sondern auf den Desktophintergrund malt, dort funktioniert Alt-Tab überhaupt nicht...
Vollbild und Taskswitch
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Re: Vollbild und Taskswitch
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Re: Vollbild und Taskswitch
Also ich hab jetzt eine Lösung für das Problem die einigermaßen Zufriedenstellend sein sollte
"DirectX7" als Subsystem nutzen, also bei mir (WinXP, Pb 4.40) funkioniert es dann
und dann noch kurz ein Tipp
ich würde auf jeden Fall noch ein Delay einbauen. Ist CPU schonender wenn gerade der Screen nicht offen ist
"DirectX7" als Subsystem nutzen, also bei mir (WinXP, Pb 4.40) funkioniert es dann
und dann noch kurz ein Tipp
ich würde auf jeden Fall noch ein Delay einbauen. Ist CPU schonender wenn gerade der Screen nicht offen ist
Code: Alles auswählen
If IsScreenActive()
;Hier Programm
Else
Delay(10)
EndIf


