Ich habe lange darüber gegrübelt und mich gewundert warum mein Würfel bei n>4 Arbeitsflächen nicht korrekt gezeichnet wird. Gestern Abend hab ich mir des Problems mal angenommen (Dank der vertikalen Rotationsmöglichkeit konnte ich den Bug endlich genau betrachten) und nach etwa einer Stunde herumprobieren hatte ich eine Lösung für n<8 Arbeitsflächen.
Heute hab ich dann noch einmal Zeit investiert und hab das Problem lösen können. Nun wird die geometrische Figur für allgemein n Arbeitsflächen korrekt aufgespannt. So wie im folgenden Screenshot für die maximale Anzahl von 20 Arbeitsflächen (nicht, dass der Effekt dann benutzbar wäre).
20 Desktops

Richtig überrascht hat mich dann der Blick in den Diff. Nur vier Zeilen Code wurden verändert. Tja manchmal reicht wenig um viel zu erreichen. Andererseits hab ich somit knapp eine halbe Stunde pro Zeile gebraucht ;-)
Die Rotation funktioniert für n<>4 jedoch immer noch nicht korrekt :-(

3. Juli 2008, 5:25 Uhr

Nur damit ihr nicht denkt ich hätte heute vergessen einen neuen Screenshot zu zeigen ;-)
Hab mich heute mal an dem Skydome Support versucht. Wie man sehen kann mit Erfolg. Leider gibt es aber noch keine GUI zum Konfigurieren des Hintergrundbildes - man muss noch die Konfig Datei bearbeiten. Plasma hat einen sehr schönen Dialog zum Auswählen eines Hintergrundbildes. Den würde ich auch ganz gerne verwenden, befindet sich aber noch nicht in den KDE Libs. Mal schauen was sich machen lässt.

So hier der Screenshot:

2. Juli 2008, 11:35 Uhr

Ich war heute mal richtig fleißig und es lief gut, daher gibt es jetzt schon wieder einen Screenshot :-D
Vertical and horizontal rotation
Wie man sieht, kann man jetzt um eine weitere Achse rotieren. Mit den Cursor-Tasten Hoch und Runter kann man den Würfel jeweils um 90° nach oben oder nach unten drehen. Nicht, dass man das wirklich bräuchte, aber Compiz hat’s auch ;-)
Obwohl ich es zuerst nicht so implementieren wollte, kann man den Würfel gleichzeitig nach links/rechts und oben/unten drehen. Die Animationen beeinflussen sich gegenseitig zum Glück nicht. Auf dem Screenshot kann man jetzt auch die Spiegelung besser erkennen. Und man sieht auch, dass da noch nicht alles stimmt ;-)

1. Juli 2008, 9:39 Uhr

Und mal wieder ein neuer Screenshot:
Cube with reflection
Ich weiß es ist schwer zu erkennen, aber der Würfel wird nun gespiegelt. Das erfreuliche ist, dass es keinerlei Auswirkungen auf die Performance hat. Auch neu ist, dass man nun eine eigene Hintergrundfarbe festlegen kann. Das hat mir mal wieder die Stärken von C++ und der KDE API gezeigt. Im Qt-Designer einfach nur einen KColorButton eingefügt, in der Config Klasse bei Speichern und Laden den Wert ausgelesen, im Effekt auch Auslesen und als ClearColor definieren. Wenige Zeilen Code und tolle Auswirkung. So macht programmieren Spaß ;-)

1. Juli 2008, 5:57 Uhr

Don’t claim to have a config option, if you don’t actually have the UI to change it[1]

Um behaupten zu können, dass der Cube konfigurierbar ist, habe ich heute den passenden Dialog geschrieben. Noch ist es nicht viel, aber alle Optionen funktionieren bereits. Ein neues Feature hat dabei auch noch Einzug gehalten: Der Name der aktuell ausgewählten Arbeitsfläche wird angezeigt - natürlich auch ausschaltbar.

Cube Konfiguration

[1]: https://lists.linux-foundation.org/pipermail/desktop_architects/2007-February/002338.html

30. Juni 2008, 8:20 Uhr

Nachdem ich diese Woche eine Klausur geschrieben hatte, kann ich mich nun wieder voll auf meinen Würfel konzentrieren. Der Würfel wird nun anders gezeichnet. Bisher wurde jede Seite zuerst als Texture gespeichert und danach auf den Würfel angebracht. Dies hab ich nun ausgeschaltet: jede Seite wird direkt gerendert. Das hat den Vorteil, dass es auch auf älterer Hardware läuft und bedeutend schneller ist (nun ca. 25-30 FPS). Aber die Änderung hat auch ein paar Nachteile. So funktioniert das herumklappen der Fenster um die Würfelecken zur Zeit nicht mehr. Leider hab ich aktuell noch keine Idee, wie man dies lösen kann…

Nun hab ich auch begonnen die Rotation zu implementieren. Funktioniert bereits für den Spezialfall von 4 Arbeitsflächen - dem klassischen Würfel. Mit den Cursor Tasten kann der Würfel nach links und rechts rotiert werden; über die Tasten 1-4 (oder größer) kann direkt zu der gewählten Arbeitsfläche rotiert werden und der Effekt wird dann beendet. Selbstverständlich sucht der Effekt den schnellsten Weg zum Rotieren.

Rotierter Würfel
Das neue Standardhintergrundbild von KDE 4.1 ist meines Erachtens nach sehr gelungen.

29. Juni 2008, 4:14 Uhr

Wie einige wohl wissen, wohne ich in der Mannheimer Innenstadt. Wie allgemein auch bekannt ist, gibt es in Mannheim sehr viele Mitbürger, die aus anderen europäischen Ländern stammen oder aus Ländern, die man bei bestimmten Wettbewerben zu Europa dazu zählt. Wie auch bekannt, findet zur Zeit solch ein bestimmter Wettbewerb, die Euro 2008, statt.

Nachdem sich die Vorrunde nun zu Ende neigt, beginnen die Spiele um 20:45 Uhr. Also enden sie gegen 22:40 Uhr mit der obligatorischen Nachspielzeit. Der ideale Zeitpunkt um die Autos zu besteigen in die Innenstadt zu fahren und kräftig auf die Hupe zu drücken. Man hat auch Ausdauer: eine halbe Stunde? eine Stunde? zwei Stunden? Alles kein Problem. Interessiert es mich, dass es in Mannheim auch Menschen gibt, die um 01:00 Uhr Nachts schlafen und nicht gehupe hören wollen? Vielleicht, aber unsere Mannschaft hat doch gewonnen!

Angefangen hat alles mit dem Spiel Schweiz gegen Türkei. In der Nachspielzeit erzielen die Türken den Siegtreffer: das ist ein Nationalereignis: “Ja wir haben einen Sieg”. Hat man zu dem Zeitpunkt schon etwas erreicht? Nein - ein Sieg im zweiten Spiel, noch nicht für das Viertelfinale qualifiziert. Trotzdem das muss gefeiert werden.

Dank des italienischen Unentschieden und der deutschen Niederlage hatte man in Mannheim erst mal wieder Ruhe. Bis, nun ja, bis die Türken wieder spielten. Sie lagen bereits 2:0 zurück gegen stark spielende Tschechen. Man freute sich auf eine ruhige Nacht… und was passiert: der tschechische Torwart greift daneben und die Türkei dreht das Spiel und qualifiziert sich für das Viertelfinale. An dem Punkt etwas erreicht? Den Titel gewonnen? Trotzdem ein Grund zu feiern - wieder eine schlaflose Nacht.

Nächster Abend: Deutschland gegen Österreich. Deutschland spielt schlecht, schwach. Das Highlight der Rausschmiss der Trainer auf die Tribüne. Deutschland gewinnt und qualifiziert sich auch für das Viertelfinale. Stellt das Erreichen des Viertelfinales wirklich ein für Deutschland bereits angemessenes Ziel da? Ist alles unter Erreichen (falls Deutschland nicht weiter kommt) des Finales nicht eine Niederlage? Gibt es also einen Grund zu hupen? Dennoch - man muss ja zeigen, dass die deutsche Bevölkerung mit den Türken es aufnehmen kann. Die Herausforderung wurde angenommen - auch wenn beim Lautstärkeduell klar die Türken (noch) vorne sind.

Dienstag: Man freut sich - heute gibt es für keine Minorität einen Grund zu feiern. Holland wird schön brav verlieren (sind ja sicher Gruppensieger) und Italien und Frankreich fahren nach Hause. Tja Rechnung geht nicht auf: Holland gewinnt, Italien gewinnt. Italien qualifiziert sich ebenfalls für das Viertelfinale. Ist das Erreichen des Viertelfinales wirklich ein Grund zu feiern, wenn man von Holland abgeschlachtet wurde (im ersten Spiel) und man amtierender Weltmeister ist? Offensichtlich ja: es wurde wieder gehupt.

Heute: ja heute: Es spielt Griechenland, Spanien, Rußland und Schweden. Meine Hoffnung liegt darin, dass die Minoritäten zu klein sind um mich wach zu halten…

Und die Zukunft: Morgen spielt Deutschland. Übermorgen die Türkei. Hoffnung: der türkische Torwart ist gesperrt - er war gegen Tschechien klar der beste Mann. Ja die Hoffnung stirbt zu Letzt. Liebe Kroaten schmeißt die Türken raus - ich möchte schlafen. Am Sonntag spielt Italien gegen Spanien. Auch hier gibt es Hoffnung - überzeugen konnte ja Italien bei dieser EM noch nicht.

Zum Glück ist am Dienstag - am Tag vor einer Klausur - spielfrei. Da werde ich also schlafen können. Und dann nur noch drei Partien… Es gibt Hoffnung auf ruhige Nächte - und wenn Deutschland gewinnt: dann muss ich auch nicht schlafen ;-)

18. Juni 2008, 6:53 Uhr

Ich habe vorhin einige Änderungen am Cube committed. Die Innenwinkel werden nun in Abhängigkeiten der verwendeten Arbeitsflächen errechnet und auch die Texturzugriffe werden errechnet. Dies gibt uns einige weitere Möglichkeiten: wir sind nicht mehr auf einen Würfel beschränkt. So kann man nun auch mit 3 Arbeitsflächen einen Keil erstellen:
Keil

Mehr als 4 Seiten funktioniert leider noch nicht. Bei 5 Seiten treffen sich die zwei hinteren Flächen noch nicht. Aber das wird schon ;-)

Ach ja wie man im Screenshot sehen kann ist die Performance nicht gerade die Beste. Das muss ich auch noch in Griff bekommen. Ist aber gerade nicht Prio A nachdem ich am Samstag die FPS Rate vervier bis fünfacht habe.

16. Juni 2008, 12:38 Uhr

Heute habe ich meinen bisherigen Stand meines Summer of Code Projektes in das SVN Repository hochgeladen. Wer sich dafür interessiert: ich habe einen Branch angelegt: branches/work/soc-kwin-cube.
Die Quellcode Dateien finden sich in effects/cube.h und effects/cube.cpp. Aktuell ist der Code natürlich noch nicht wirklich gut. So werden nur vier Arbeitsflächen unterstützt und Rotation funktioniert auch noch nicht. Trotzdem kann ich schon einen Screenshot präsentieren:
Wie man sieht werden bereits Fenster um die Ecken herumgeklappt. Das ich dies so früh schon zeigen kann, freut mich besonders.

11. Juni 2008, 12:45 Uhr

In Qt 4.4 wurde die von KHTML abstammende Rendering-Engine WebKit integriert. Um diese richtig ausprobieren zu können, hat Trolltech einen Demo-Browser geschrieben. Dieser ist nun die Grundlage für einen neuen Browser: Arora
Hier die Highlights:

  • Steht unter der GPLv2
  • Benutzt WebKit als Rendering-Engine
  • Plattformunabhängig, da auf Qt aufbauen
  • Anpassung an das System, da auf Qt aufbauend
  • Komplett neue Möglichkeiten für Webseite Entwickler, da QWidgets in die Webseite integriert werden können

Der Browser befindet sich noch unter starker Entwicklung, so gibt es zum Beispiel noch keine Unterstützung für Netscape Plugins, aber das wird. Abgesehen davon kann man das Fehlen von Flash durchaus als Feature bezeichnen :-D

Ich finde die Entwicklung sehr interessant. Wer mich kennt, weiß ja, dass ich Mozilla Firefox aus verschiedenen Gründen ablehne und Konqueror verwende. Firefox entwickelt sich in eine Richtung, die ich für einen quelloffenen Browser nicht gut heißen kann. Insbesondere die IceWeasel Geschichte ist für mich ein Grund diesen Browser nicht zu verwenden.

Ich halte sehr viel von der WebKit Engine und hätte gerne einen darauf aufbauenden Browser. Leider befindet sich der WebKit KPart für Konqueror noch in Entwicklung, wird jedoch im Rahmen eines Google Summer of Code Projekts vorangebracht.

Ein neuer wirklich schneller und freier Browser könnte noch einmal richtig Belebung in den Browser Markt bringen. Mögliche Unterstützer für so einen Qt/WebKit Browser gibt es natürlich genügend: Nokia (Besitzer von Trolltech) und Apple (Initiatoren des WebKit Projekts) zum Beispiel.

Natürlich geht das Ganze nicht ohne Screenshot:

Man sieht sehr schön, dass dieser Browser sich in die Oberfläche integriert und kein Fremdkörper ist.

Mehr Infos findet man auch in diesem Blog Eintrag: Arora, a WebKit browser in Qt

29. Mai 2008, 5:25 Uhr