From: Laurent M. <lau...@fx...> - 2002-10-29 22:57:39
|
Bon, j'ai lu en large ce que vous avez dit... Perso, j'ai ca dans vr3d2 depuis plus d'un an, et ca marche assez beton. J'ai pas de gros doc expliquant ca, mais en gros j'ai une structure avec 3 niveaux : VRSTUDIO et autres -- VR3D -- VROM VROM (VR Object Model) impl=E9mente : - un syst=E8me de plugin =E0 base de dlls, et de packages (=E0 travers les dlls). - VRIO (VR Input Output) : un syst=E8me de stream, et de serialisation avec 3 infos (CHUNKID, Version, taille) en plus des datas, un peu sp=E9cial, qui permet de r=E9f=E9rencer des elements d=E9j=E0 serialis=E9s,= de facon transparente on peut sauvegarder tout sans se prendre la tete=20 (meme un graphe). Le seul d=E9faut qu'il y a c'est que j'ai pas impl=E9ment=E9 d=E8s le d=E9b= ut un syst=E8me de SmartPointer, j'ai pas vraiment envie de tout refaire. Pour calculer la taille d'un chunk, il faut =E9crire du 0 et faire un retour =E0 l'endroit =E0 la fin, pour r=E9=E9crire. En utilisant une pile. En plus de tout ca, j'utilise un peu le RTTI. On peut en revenir =E0 ce que j'en ai conclu. Le C++ de base n'est pas fait pour faire un bon syst=E8me de plugin. Donc faut pas trop s'enerver l=E0 dessus (eviter de refaire la reflexivit=E9 qu'il manque). J'ai fait un truc simple, et je pense que je ferai jamais plus compliqu=E9. Pour faire un truc =E0 base de plugin, quelque chose comme .NET/C#/etc s'impose car vraiment ca torche bien de ce cot=E9 l=E0. (comme des langages de scripts de type Python, etc.) A+, Sanx, -- Laurent MASCHERPA (Sanx / FX Team) Formerly Responsible Person of Epidemic : Epita Demoscene Organization lau...@fx... - http://sanx.fxteam.net |