Autor Beitrag
FrEaKY
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 235


D7
BeitragVerfasst: Fr 22.01.16 17:46 
Meine Bildschirmauflösung ist 1920 x 1080. Nun will ich mit FRAPS ein Spiel aufzeichnen, sagen wir in 2000x1200 oder irgendwas großes.
WIE?
Problem: ich kann in der INI Konfigdatei des Spiels beliebige Größen eingeben, das klappt alles, AUßER wenn das Fenster größer als der Desktop wird. Ich weiß nicht, ob diese Limitierung an dem Spiel selbst liegt , an Windows, oder sonstworan. Ist ja eigentlich auch egal woran.

Eine Möglichkeit, die mir gerade eingefallen ist, per SetWindowLong (oder wie der Befehl nochmal heißt) das Fenster des Spiels zu vergrößern. Keine Ahnung, habe ich noch nicht probiert. Ist aber auch nicht optimal, weil dann sehe ich ja einen Teil nicht.
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Fr 22.01.16 18:12 
user profile iconFrEaKY hat folgendes geschrieben Zum zitierten Posting springen:
Meine Bildschirmauflösung ist 1920 x 1080. Nun will ich mit FRAPS ein Spiel aufzeichnen, sagen wir in 2000x1200 oder irgendwas großes.
WIE?
Problem: ich kann in der INI Konfigdatei des Spiels beliebige Größen eingeben, das klappt alles,


Was heißt "alles"? Startet das Programm / Spiel "nur", oder auch noch in der editierten Auflösung? Ich vermute, letzteres.

user profile iconFrEaKY hat folgendes geschrieben Zum zitierten Posting springen:
AUßER wenn das Fenster größer als der Desktop wird.


Das ist wenig verwunderlich. Wohin sollen dann manche Graphikbefehle geschickt werden? Zu Pixeln, die es nicht gibt, also in's Nirvana. Wenn das nicht abgefangen wird, könnte es Exzeptions oder gar den Programmabsturz bewirken.

Und normalerweise sind nach meinem Geschmack Ini-Dateien nichts zum persönlichen Editieren. Sie werden von Programmen erstellt, "vollautomatisch" verwaltet bzw. editiert und ggf. auch wieder gelöscht. Wenn nicht hineinprogrammiert wurde, eine Auflösung größer als den Desktop abzufangen - warum auch, wenn das Programm nur gültige Auflösungen einträgt - dann kann es eben zum Absturz kommen.

user profile iconFrEaKY hat folgendes geschrieben Zum zitierten Posting springen:
Ich weiß nicht, ob diese Limitierung an dem Spiel selbst liegt , an Windows, oder sonstworan. Ist ja eigentlich auch egal woran.


Warum ist das egal?

Evtl. könnte davon abhängen, ob Du doch noch zum Ziele kommst, aber das bezweifele ich.

user profile iconFrEaKY hat folgendes geschrieben Zum zitierten Posting springen:
Eine Möglichkeit, die mir gerade eingefallen ist, per SetWindowLong (oder wie der Befehl nochmal heißt) das Fenster des Spiels zu vergrößern. Keine Ahnung, habe ich noch nicht probiert. Ist aber auch nicht optimal, weil dann sehe ich ja einen Teil nicht.


Auch damit werden die von Windows gesetzten Grenzen nimmer überschritten werden können.

Ergänzung: Ich kenne auch die Graphikoption, Desktops größer als die physische Auflösung des Monitors zu wählen, wenn die Graphikkarte in bezug auf Auflösung leistungsfähiger als der Monitor ist. Dann kann der Desktop durch Verschieben des Mauscursors zum Monitorrand verschoben werden. Wem es gefällt....mir würde so etwas fürchterlich auf die Nerven gehen, es ist aus meiner Sicht maximal als Notlösung akzeptabel (eben, um für einen bestimmten Fall eine höhere Auflösung zu erreichen). Außerdem stellen die Graphikausgänge manchmal größere Auflösungen als die des Monitors zur Verfügung.
FrEaKY Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 235


D7
BeitragVerfasst: Fr 22.01.16 21:08 
Ahja. Nicht ganz die Antwort, die ich mir erhofft hatte, aber gut.

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconFrEaKY hat folgendes geschrieben Zum zitierten Posting springen:
Meine Bildschirmauflösung ist 1920 x 1080. Nun will ich mit FRAPS ein Spiel aufzeichnen, sagen wir in 2000x1200 oder irgendwas großes.
WIE?
Problem: ich kann in der INI Konfigdatei des Spiels beliebige Größen eingeben, das klappt alles,
Was heißt "alles"? Startet das Programm / Spiel "nur", oder auch noch in der editierten Auflösung? Ich vermute, letzteres.


Es startet in jedem Fall.
Solange X < 1920 und Y < 1060 (Clientbereich), startet es in jeder beliebigen Auflösung die ich eintrage. Wenn ich größere Werte eintrage, startet es eben mit 1920 und/oder 1060 Pixeln. Aber es startet ohne Fehler oder Abstürze.

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:

user profile iconFrEaKY hat folgendes geschrieben Zum zitierten Posting springen:
AUßER wenn das Fenster größer als der Desktop wird.
Das ist wenig verwunderlich. Wohin sollen dann manche Graphikbefehle geschickt werden? Zu Pixeln, die es nicht gibt, also in's Nirvana. Wenn das nicht abgefangen wird, könnte es Exzeptions oder gar den Programmabsturz bewirken.

Und normalerweise sind nach meinem Geschmack Ini-Dateien nichts zum persönlichen Editieren. Sie werden von Programmen erstellt, "vollautomatisch" verwaltet bzw. editiert und ggf. auch wieder gelöscht. Wenn nicht hineinprogrammiert wurde, eine Auflösung größer als den Desktop abzufangen - warum auch, wenn das Programm nur gültige Auflösungen einträgt - dann kann es eben zum Absturz kommen.

user profile iconFrEaKY hat folgendes geschrieben Zum zitierten Posting springen:
Ich weiß nicht, ob diese Limitierung an dem Spiel selbst liegt , an Windows, oder sonstworan. Ist ja eigentlich auch egal woran.
Warum ist das egal?

Evtl. könnte davon abhängen, ob Du doch noch zum Ziele kommst, aber das bezweifele ich.

Sorry, aber auf meinem PC gilt MEIN Gesetz, und niemand hat mir da reinzureden. Und da ich eben KEIN "Laie" bin, funktioniert das auch wunderbar. Zufällig mappe/modde ich für dieses Spiel auch seit 13 Jahren und daher ist das Editieren an dessen Dateien an der Tagesordnung.
Und vielleicht sollte ich dazu sagen, dass es ein älteres Spiel ist und "normal" nur 4:3 Auflösungen unterstützt.
Wenn du es genau wissen willst: 320x240, 400x300, 512x384, 640x480, 720x540, 800x600, 960x720, 1024x768, 1152x864, 1280x960, 1600x1200.
Wenn ich im Fenster zocke, dann will ich auch, dass der Bildschirm zumindest in der Höhe ausgefüllt wird. Also trage ich in der Ini ein: 1400x1050, das Spiel schluckt es, und ich bin zufrieden.

Aber darum geht es ja nicht. Es geht nur darum, ein Video/Screenshots AUFZUNEHMEN. Ob diese Pixel auf dem Desktop existieren oder nicht, hat die Grafikkarte ja gar nicht zu jucken. Ich kann auch ein Bitmap mit 4000x3000 erstellen, also warum soll das nicht gehen??? Der Framebuffer ist auch nur ein Bitmap im Speicher.

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:

user profile iconFrEaKY hat folgendes geschrieben Zum zitierten Posting springen:
Eine Möglichkeit, die mir gerade eingefallen ist, per SetWindowLong (oder wie der Befehl nochmal heißt) das Fenster des Spiels zu vergrößern. Keine Ahnung, habe ich noch nicht probiert. Ist aber auch nicht optimal, weil dann sehe ich ja einen Teil nicht.

Auch damit werden die von Windows gesetzten Grenzen nimmer überschritten werden können.

Ergänzung: Ich kenne auch die Graphikoption, Desktops größer als die physische Auflösung des Monitors zu wählen, wenn die Graphikkarte in bezug auf Auflösung leistungsfähiger als der Monitor ist. Dann kann der Desktop durch Verschieben des Mauscursors zum Monitorrand verschoben werden. Wem es gefällt....mir würde so etwas fürchterlich auf die Nerven gehen, es ist aus meiner Sicht maximal als Notlösung akzeptabel (eben, um für einen bestimmten Fall eine höhere Auflösung zu erreichen). Außerdem stellen die Graphikausgänge manchmal größere Auflösungen als die des Monitors zur Verfügung.

Wenigstens etwas Hilfreiches hast du gebracht. Wie geht das? Bei Grafikmodi hab ich maximal die native Auflösung des Monitors - 1920x1080. Und ich bin mir ziemlich sicher, dass das am Monitor liegt. Bei meinem CRT konnte ich sogar 2560x1920 verwenden. Diesen Luxus hat man bei Flachbildschirmen halt nicht mehr.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 22.01.16 21:37 
Zitat:
Problem: ich kann in der INI Konfigdatei des Spiels beliebige Größen eingeben, das klappt alles, AUßER wenn das Fenster größer als der Desktop wird. Ich weiß nicht, ob diese Limitierung an dem Spiel selbst liegt , an Windows, oder sonstworan

Wenn man das Spiel wüßte hätte vielleicht jemand dazu eine Meinung ;)

Zitat:
Eine Möglichkeit, die mir gerade eingefallen ist, per SetWindowLong (oder wie der Befehl nochmal heißt) das Fenster des Spiels zu vergrößern.

Ich würde das bezweifeln. Wenn dann hängt es aber vermutlich auch daran welche Graphikschnittstelle (GDI, GDI+, OpenGL, DirectX .... ) verwendet wird.
Ich vermute mal auch das wenn du das Fenster größer als denn Desktop bekommst würdest Fraps nichts unbedingt was für den "Offscreen"-Bereich aufzeichnet da der nicht gerendert wird (vermutlich auch wieder abhängig davon welche Graphikschnittstelle tatsächlich gerade verwendet wird)

Deine Graphikkarte sollte es ermöglichen eine custom Auflösung im Treiber zu definieren die jenseits dessen liegt was der Monitor kann.
Die wird dann aber auch tatsächlich an den Monitor gesendet. Das könnte je nach Monitor unerwünschte Nebeneffekte haben.
Guckst du zum Beispiel hier für eine NVidia Karte.
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Fr 22.01.16 21:38 
user profile iconFrEaKY hat folgendes geschrieben Zum zitierten Posting springen:
Sorry, aber auf meinem PC gilt MEIN Gesetz, und niemand hat mir da reinzureden.


Warum fragst du dann ein Forum? Befiehl Deinem Computer einfach, was er zu tun und verbiete ihm, was er zu lassen hat, und schon ist alles in Ordnung.