Nun, der Grund dafür könnte schlichtweg sein daß Operationen auf der graphischen Benutzeroberfläche streng sequentiell sein müssen, wenn man nicht das Chaos heraufbeschwören will. Dies lernt man bei der Qt- oder Java-Programmierung schnell. Direkte Zeichenoperationen aus nebenläufigen Prozessen schreien nach Abstürzen bzw. "komischen" Verhalten, gerade beim X-Server. Wenn dort ein anderer Prozess in die Zeichenoperationen "hereinquatscht" entstehen die merkwürdigsten Effekte. Aber richtig: besser wäre es schon, wenn man eine Art Warteschlangenverarbeitung einbauen würde, welche von nebenläufigen Prozessen bedient wird.
kleiner Hintergrund hierzu. Als Plasma designed wurde gab es in Qt noch nicht die raster Paint Engine. Eine QPixmap war an eine XPixmap gebunden und der zeichnende Zugriff auf eine QPixmap vom nicht-GUI Thread ist nicht erlaubt, da XLib multi threading nicht wirklich erlaubt. Man konnte zwar mit QImage in einem Hintergrundthread zeichnen, aber das bedeutet ständiges kopieren zwischen XServer und Anwendung.
Heutzutage sieht das anders aus: mit QtQuick 2 wird immer in einem Hintergrundprozess gezeichnet.
Das ist viel hilfreicher als die ganzen "Geht nicht. Es gibt Gründe." oder auch "Muss aber gehen. Habe ich gehört." Platitüden. Ich jedenfall freue mich jederzeit über solche Hintergrundinformationen, welche ja sogar noch einen positiven Ausblick für die Zukunft bieten
Nun, der Grund dafür könnte schlichtweg sein daß Operationen auf der graphischen Benutzeroberfläche streng sequentiell sein müssen, wenn man nicht das Chaos heraufbeschwören will.
Dies lernt man bei der Qt- oder Java-Programmierung schnell. Direkte Zeichenoperationen aus nebenläufigen Prozessen schreien nach Abstürzen bzw. "komischen" Verhalten, gerade beim X-Server. Wenn dort ein anderer Prozess in die Zeichenoperationen "hereinquatscht" entstehen die merkwürdigsten Effekte.
Aber richtig: besser wäre es schon, wenn man eine Art Warteschlangenverarbeitung einbauen würde, welche von nebenläufigen Prozessen bedient wird.
kleiner Hintergrund hierzu. Als Plasma designed wurde gab es in Qt noch nicht die raster Paint Engine. Eine QPixmap war an eine XPixmap gebunden und der zeichnende Zugriff auf eine QPixmap vom nicht-GUI Thread ist nicht erlaubt, da XLib multi threading nicht wirklich erlaubt. Man konnte zwar mit QImage in einem Hintergrundthread zeichnen, aber das bedeutet ständiges kopieren zwischen XServer und Anwendung.
Heutzutage sieht das anders aus: mit QtQuick 2 wird immer in einem Hintergrundprozess gezeichnet.
Danke für diese Erläuterung!
Das ist viel hilfreicher als die ganzen "Geht nicht. Es gibt Gründe." oder auch "Muss aber gehen. Habe ich gehört." Platitüden. Ich jedenfall freue mich jederzeit über solche Hintergrundinformationen, welche ja sogar noch einen positiven Ausblick für die Zukunft bieten