PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Qt] Auflösung/Farbtiefe ändern?



Miles
26-08-2003, 15:07
Hallo mal wieder. Hab mich schon eine Weile nicht mehr gemeldet.

Ich lerne gerade OpenGL auf Linux (mit den NeHe-Tuts ;D) und hab es jetzt doch TATSÄCHLICH selbst geschafft die XWindow-Anwendung in eine Qt-Anwendung umzuschreiben.
Nur brauche ich jetzt etwas ziemlich dringend und ich weiß nichtmal, ob es überhaupt mit Qt geht:

Wie kann man mit Qt die Auflösung bzw. die Farbtiefe ändern? (Ist für meine zukünftigen FullScreen-Anwenungen wichtig.)

Und: Wird eine Andwendung mit Qt schneller, wenn sie im Fullscreen-Mode ist? Wenn nicht - gibt es eine andere Möglichkeit?

Hoffe ihr könnt mir helfen! :)

anda_skoa
26-08-2003, 16:23
Das ist sicher ein XLib call, für echtes Umschalten braucht der XServer glaub ich die xrandr Extension, bei XFree ab Version 4.3 dabei.

Ciao,
_

peschmae
26-08-2003, 16:25
Braucht ein User dann spezielle Berechtigungen dazu?

Wäre noch so angebracht, oder? Würde aber so ne app gewaltig einschränken.

MfG Peschmä

anda_skoa
26-08-2003, 16:29
Ich glaube nicht.
Der XServer "gehört" ja dir, bzw die Session.

Ciao,
_

axeljaeger
26-08-2003, 16:32
Das geht mit den Bordmitteln von Qt definitiv nicht. Du kannst versuchen, dir die WId von deinem Qt-Fenster zu holen und dann mit einem XLib-Call dieses Window in den FullscreenExclusiveMode zu schalten. Das hatte ich auch mal versucht, aber nicht hinbekommen.

Miles
29-08-2003, 16:32
Öhm. Irgendwie weiß ich immer noch nicht, wie ich die Farbtiefe ändern kann. ^_^""

Bitte für jemanden ohne große Erfahrung mit soetwas ein etwas konkreteres Beispiel. Wäre super.

Die Auflösung hab ich mit

XF86VidModeSwitchToMode()
geändert.


Gruß,
euer Miles :)

anda_skoa
29-08-2003, 18:34
Original geschrieben von axeljaeger
Das geht mit den Bordmitteln von Qt definitiv nicht. Du kannst versuchen, dir die WId von deinem Qt-Fenster zu holen und dann mit einem XLib-Call dieses Window in den FullscreenExclusiveMode zu schalten. Das hatte ich auch mal versucht, aber nicht hinbekommen.

AFAIK gibt es in QWidget eine Methode setFullscreen oder so ähnlich.

Ciao,
_

axeljaeger
29-08-2003, 19:07
Original geschrieben von anda_skoa
AFAIK gibt es in QWidget eine Methode setFullscreen oder so ähnlich.

Ciao,
_

http://doc.trolltech.com/3.2/qwidget.html#showFullScreen

<zitat>
Full-screen mode works fine under Windows, but has certain problems under X. These problems are due to limitations of the ICCCM protocol that specifies the communication between X11 clients and the window manager. ICCCM simply does not understand the concept of non-decorated full-screen windows. Therefore, the best we can do is to request a borderless window and place and resize it to fill the entire screen. Depending on the window manager, this may or may not work. The borderless window is requested using MOTIF hints, which are at least partially supported by virtually all modern window managers.
</zitat>

Offensichtlich wird da die Auflösung zumindest unter X11 nicht geändert