From: Alexander F. <xandi@3Dsia.cx> - 2001-04-14 23:37:43
|
On Friday 13 April 2001 04:21, you wrote: > Okay Manfred and Xandi, please take the time and answer, since I can't do > any programming until these things are discussed. > C'ya all Sorry, but you know my sparkling energy when it comes to answer mails in a short time.. ;) The main problem there is that this is a project where some people really want to participate. Having an public accesible CVS server doesn't make a project really open, the project also has to be coordinated that way. That was and still is what we lack of. It's great that you have many ideas you want to implement, Marc, but it doesn't help if you are going your way alone, imho. We have to solve these problems as a team. Please join #3Dsia, and keep up to date. Anyway, imho it's not Ballon that can be integrated into Hvergelmir but the other way around. But wait for manfred's answer regarding that, he's the brain behind Ballon, i'm just a contributer. > Hi ihr zwei, > ich hab gerade Ballon naeher unter die Lupe genommen und will es jetzt > vernuenftig in Hvergelmir integrieren, und das will ich mit euch > besprechen, denn es gilt viel anzugleichen. Ich bitte um zahlreiche und > ausfuehrliche Kommentare :-)=) see above > > Das ganze faengt bei der Dateinamensgebung an. Alle header finden sich in > Ballon in 'Ballon/include', und sie fangen alle mit '3Dsia' an. Ich wuerde > gern von allen *.h das '3Dsia' vorne wegnehmen und mit Kleinschreibung > anfangen. Nach dem 'make install' in Hvergelmir sind die ganzen > include-Dateien dann naemlich via "#include <3Dsia/header.h>" zu erreichen, > dann brauchts das 3Dsia im Dateinamen nicht mehr (ja, das geht schon lang, > es wird naemlich in '/usr/local/include/' ein Link '3Dsia' zum richtigen > 3Dia-Include Verzeichnis gelegt (der Platz kann via ./configure bestimmt > werden, BTW)) it's standard to have the library's name in front of the header-name. Look at gnome, qt, SDL, etc. I think though that 3Dsia in front of the source files is redundant and could be removed. > Das naechste sind dank Hvergelmir unnoetige Elemente: der PlugInHandler von > Ballon hat im PlugInCenter von Hvergelmir ein leistungsfaehigeres > Gegenstueck, IMHO. Bis auf zwei Sachen, die ich auf alle Faelle im > PlugInCenter aufnehmen werde: unloading (ich muss auch wieder > load-on-demand einfuehren, faellt mir auf...) und die Windows > Unterstuetzung. (Danke Xandi, jetzt bin ich __ENDLICH__ in der Lage den > einzig kritischen Part im PlugInCenter loesen: die Win32 DLL load-funtionen > ! Sieht aus als waere damit die WinNT portierung in greifbarer Naehe). That's fine. Then we should integrate that part into Ballon. > Was ich nur nicht verstehe ist, wozu ist 3DsiaPluginControl ? > > 3DsiaDevice.h gehoert ins globale include directory, keine Frage, aber ist > 3DsiaDeviceKeyboard dort auch richtig ? Wird es unbedingt benoetigt um ein > Keyboard als device anzusprechen ? Wenn ja, warum ? Was sind noch fuer > Devices geplant ? Ich bin selbstverfreilich ueber einen > Geraetegruppen-Ansatz, so allgemein und doch universell wie moeglich. That can be moved out of there, no problem. > 3DsiaEvents.h finde ich auch sehr verwirrend: erstens bin ich es gewoehnt > enum-typen komplett in Grossbuchstaben zu schreiben und zweitens verstehe > ich nicht was so geraetespezifische Sachen dort sollen. Zumal nur ein 's' > im Dateinamen Unterschied zum Event-Klassen-Header besteht (unschoen). > Ausserdem stimmt da irgendwas in der implementierung nicht, 'c' und 'd' > sind bei mir ':' und ';', alles was nicht Buchstabe ist funktioniert nicht. i guess you are refering to EC_CHAR_A and EC_CHAR_a things? you are right, we could change that to it. But it's not device-specifc. You can define that when you move your joystick left that an EC_CHAR_X is triggerd. That's why 'c' and 'd' trigger ':' and ';' as it's just mapped onto those events. This form of event mapping is btw just as long as noone bothers writing something that makes more sense, like something that can be expanded to support things like (i know it's evil, it's just an example) unicode or something like similar. As it's modular, we can change that part whenever we want. > 3DsiaMutex und 3DsiaMutexLock versteh ich auch nicht, genausowenig wie > 3DsiaThreaded. Nach meinem Verstaendnis haengt das alles zusammen und kann > in einer oder zwei Klassen zusammengefasst werden (Mutex und MutexLock > zumindest). In 3DsiaThreaded.h stoert mich vor allem 'pfn'. Schlechter Name > (was das ? Funktionspointer ?). Und 'Stopp' schreibt man im englischen nur > mit einem 'p' :-)=) Was macht Step () ? Das klingt mir so ekelhaft nach > cooperativem Multitasking... 3DsiaMutex is a very fine thing if you look at it into detail. It's simple and neat. (see it's constructor and destructor) :) just use it instead of pthread_mutex,. Regarding 3DsiaThreaded, pfn = pointer to a function Stopp, well.. you can change it, if you like :) Step is just used by the function that keeps the thread alive (for example, void* ThreadInProcessor() ). Maybe Step is not the best name, if you find a better suiting name, cry out loud ;) >> Wie ich sehe macht ihr in Ballon gebrauch von Namespaces. Halte ich fuehr > gut, Stroustrup sagt ja man soll sie nutzen... ich habs noch nicht getan, > deswegen werd ich Hvergelmir dementsprechend anpassen. see above > Kommen wir zur Namensgebung: system bei der Namensgebung ist ja schoen und > gut, aber alle Klassen mit 'C' anfangen zu lassen halte ich fuer > uebertrieben if it doesn't help, it doesn't harm imho it does help, though ;) > Ich moechte aus Ballon ja eine Library machen, damit das ganze schoen > sauber wird. lib3DsiaCore gibts ja schon, das ist der wahre Hvergelmir ;-) > Ich wuerde das ganze dann lib3DsiaBallon nennen und in 'base/ballon/' die > Implementierungen (*.cxx) stecken und in 'base/include/' die globalen > Header. Welche Sachen sind nicht wirklich fuer die Ballon-Library sinnvoll > ? Gibt es Sachen, die besser in lib3DsiaCore wandern sollten ? (Ich denke > dass die Thread- und Mutex-Klassen da hingehoeren, evtl. auch die Devices ? > Dann waere im Core alles was wirklich Systemabhaengig und auch auch > systemnah ist) imho especially things like Thread and Mutex handling should go into a lib and not into a core.. but that's another discussion > Uff, okay, das wars soweit, denke ich... hab wieder Blut geleckt und will > das Projekt wieder mal weiterbringen, und zwar schoen zukunftssicher... und > vor allem will ich eine schoene Architektur, aber ich denke das kriegen wir > diesmal hin. Einen kompletten Rewrite wirds hoffentlich erst wieder in ein > paar Jahren geben, und ich moechte unbedingt dafuer sorgen dass es noch > einige Jahre werden. Und dafuer muessen wir jetzt sorgen, ich denke das ist > jetzt ein sensibler Punkt an dem wir sind. Aber ich hab den festen Willen > das gut zu loesen :-)=) Well, if we don't solve it as a team it won't help much. bye Xandi ps: please join #3Dsia more often. -- xandi@3Dsia.cx - Alexander Feder - Vienna/Austria personal: http://members.blackbox.net/xandi/ project: http://www.3Dsia.org |