Ich muss nochmal ein paar Sachen nachfragen 
Also nochmal zu den Buffern. Sagen wir mal ich habe keinen VESA Treiber sondern einen "richtigen" Treiber. Schreiben da dann die Programme normalerweise direkt in den Graka-RAM (direkt in den Buffer des Frames) oder schreiben sie direkt in den Graka-RAM (direkt in den Buffer ihres Windows) oder schreiben sie in einen Buffer im normalen RAM und dann holt sich der Graka-Treiber die Daten aus den Buffern bzw. der GUI-Server schickt die Daten aus den Buffern an den Graka-Treiber?
Dann mal zur direkten Implementation.
Ich möchte es jetzt so machen, das der GUI-Server die "Dekoration" (Titelleise + Rahmen eines Fensters) übernimmt und die Anwendung direkt im Fenster alles selber machen muss.
Jedes Ereignis welches innerhalb des Fensters (also der Bereich den die Anwendung bearbeitet) passier (z.B. Maus-Klick, Tastatur-Eingabe, Maus-Bewegung usw.) wird als Nachricht an das Fenster geschickt, aber nicht mit den globalen Koordinaten, sondern mit den Fenster-lokalen Koordinaten. Ist das soweit in Ordnung oder wird es damit Probleme geben (Performance und andere)?
Ich möchte dann ein paar Standard-Bibliotheken schreiben (z.B. wären das bei Haiku die Kits) mit denen es ziemlich einfach werden sollte eine GUI zu schreiben, das ganze in C++, weil sich Objektiorientierung ja praktisch anbietet.
Das Fenster hat eine "Liste" (ich denke man sollte das nicht wortwörtlich nehmen, ansonsten könnte das sehr langsam werden) mit allen Objekten im Fenster (z.B. Buttons, Labels und was es nicht noch alles gibt). Diese "Liste" wird durchgegangen und geschaut, welche Objekte die Nachricht/das Event betrifft.
Von diesen Objekten wird dann jeweils eine "processMsg(msg_t msg)" aufgerufen und bei diesen Objekten kann es dann wieder passieren das diese auch wieder mehrere unter Objekte haben und das selbe durchführen müssen.
Was ist davon zu halten? Zu langsam, zu umständlich?
Was ich auf keinen Fall möchte, ist alles als Fenster betrachten und auch so beim GUI-Server zu registrieren. Denn das würde die ganze komplexität auf den GUI-Server übertragen und das will ich nicht, auch macht es bestimmte Anwendungen schwieriger (ich denke da an Tabs, wo man dann ja bei einem Tab-wechsel alles "Fenster" aus dem alten Tab "löschen" müsste und alle "Fenster" von dem neuem Tab registrieren müsste).

Also nochmal zu den Buffern. Sagen wir mal ich habe keinen VESA Treiber sondern einen "richtigen" Treiber. Schreiben da dann die Programme normalerweise direkt in den Graka-RAM (direkt in den Buffer des Frames) oder schreiben sie direkt in den Graka-RAM (direkt in den Buffer ihres Windows) oder schreiben sie in einen Buffer im normalen RAM und dann holt sich der Graka-Treiber die Daten aus den Buffern bzw. der GUI-Server schickt die Daten aus den Buffern an den Graka-Treiber?
Dann mal zur direkten Implementation.
Ich möchte es jetzt so machen, das der GUI-Server die "Dekoration" (Titelleise + Rahmen eines Fensters) übernimmt und die Anwendung direkt im Fenster alles selber machen muss.
Jedes Ereignis welches innerhalb des Fensters (also der Bereich den die Anwendung bearbeitet) passier (z.B. Maus-Klick, Tastatur-Eingabe, Maus-Bewegung usw.) wird als Nachricht an das Fenster geschickt, aber nicht mit den globalen Koordinaten, sondern mit den Fenster-lokalen Koordinaten. Ist das soweit in Ordnung oder wird es damit Probleme geben (Performance und andere)?
Ich möchte dann ein paar Standard-Bibliotheken schreiben (z.B. wären das bei Haiku die Kits) mit denen es ziemlich einfach werden sollte eine GUI zu schreiben, das ganze in C++, weil sich Objektiorientierung ja praktisch anbietet.
Das Fenster hat eine "Liste" (ich denke man sollte das nicht wortwörtlich nehmen, ansonsten könnte das sehr langsam werden) mit allen Objekten im Fenster (z.B. Buttons, Labels und was es nicht noch alles gibt). Diese "Liste" wird durchgegangen und geschaut, welche Objekte die Nachricht/das Event betrifft.
Von diesen Objekten wird dann jeweils eine "processMsg(msg_t msg)" aufgerufen und bei diesen Objekten kann es dann wieder passieren das diese auch wieder mehrere unter Objekte haben und das selbe durchführen müssen.
Was ist davon zu halten? Zu langsam, zu umständlich?
Was ich auf keinen Fall möchte, ist alles als Fenster betrachten und auch so beim GUI-Server zu registrieren. Denn das würde die ganze komplexität auf den GUI-Server übertragen und das will ich nicht, auch macht es bestimmte Anwendungen schwieriger (ich denke da an Tabs, wo man dann ja bei einem Tab-wechsel alles "Fenster" aus dem alten Tab "löschen" müsste und alle "Fenster" von dem neuem Tab registrieren müsste).

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert

Meine momentane Planung sieht es vor dass das alles vom Clienten gemacht werden muss (warum auch nicht, passiert ja schließlich innerhalb seines Fensters), aber da sehe ich dann jetzt spontan Probleme mit der Konsistenz des Designs.