X11/GLX - Vollbild-Modus?

Ich versuche zum erstellen einer Linux-Anwendung - ein screensaver, in diesem Fall - und es erweist sich als bemerkenswert schwierig, Informationen zu finden auf die einfache Aufgabe, ein Fenster full-screen. Auch der code der vorhandenen screensavers macht keine Erwähnung von, wie Sie es schaffen, und ich habe noch zu sehen, keine offensichtlichen Funktion wie XRemoveDecoration().

Nach viel Fummelei, ich habe es geschafft, ein Fenster zu erstellen, die die gleiche Größe wie der desktop, mit diesem:

Window win = DefaultRootWindow(disp);
XWindowAttributes getWinAttr;
XGetWindowAttributes(disp, win, &getWinAttr);
win = XCreateWindow(disp, win, 0, 0, getWinAttr.width, getWinAttr.height, 0, vInfo->depth, InputOutput, vInfo->visual, CWBorderPixel|CWColormap|CWEventMask|CWOverrideRedirect, &winAttr );

Aber das tut nichts, um loszuwerden, der Titelleiste und Rahmen. Ich weiß, es ist ein Weg, klar, aber ich habe noch zu finden, was auch nur in diese Richtung verweisen, die sich nicht auf einige andere riesige Bibliothek, die sich zurzeit auf der Oberseite (die vorhandenen Bildschirmschoner sind definitiv nicht verwenden).

EDIT: Bitte entfernen Sie nicht die Informationen aus meinen Beiträgen. Es gibt einen sehr guten Grund, warum ich explizit darauf hingewiesen, dass die vorhandenen Bildschirmschoner sind nicht mit optionalen Bibliotheken, und das ist, da ich die Analyse von source-code für die meisten des letzten Tages.

Habe ich gewählt, die Antwort, dass die meisten direkt die Frage beantwortet, und das gilt auch für Anwendungen im Allgemeinen.

Wenn Sie gefunden haben, diese Frage zu erforschen xscreensavers... das gleiche gilt noch immer. Ja, xscreensaver hat seine eigene API, die ist kompliziert, und eigentlich ist das schreiben mehr code-Zeilen (ja, im ernst). Wenn Sie möchten, OpenGL in Ihren Bildschirmschoner, die Sie brauchen, um durch anderen API (xlockmore, ein konkurrierendes system) und eine Kompatibilität Schicht, übersetzt es in xscreensaver.

Jedoch xscreensaver ist in der Lage mit alle Programm, das die Nutzung von virtuellen root-Fenster (Blick in vroot.h) wie ein Bildschirmschoner. Also mein Rat ist, genau das zu tun - Sie haben mehr Kontrolle, keine Begrenzung der API und höhere Portabilität. (Ein Beispiel, das ich sah sogar kompilieren für Linux oder Windows, mit der gleichen Datei!)

InformationsquelleAutor DigitalMan | 2012-01-30
Schreibe einen Kommentar