l'idee de wrapper Ogre3D pour pure
l'idee de wrapper Ogre3D pour pure
Salut, je suis un ancien utilisateur de PB, du temps ou je voulais faire de la 3d avec les basics, et comme tout le monde, j'eus ete decu.
Depuis le temps je me suis mis au c++, et je commence a bien connaitre Ogre.
Aujourd'hui je repasse par ici, et je vois que qu'on en est a purebasic 4, j'entends parler de de grandes ameliorations, mais du cote de la 3d, rien a bouge...
Par contre ogre a enormement evolue, et de nombreux outils utiles ont egalement apparu.
Je pense que je pourrais wrapper ogre, mais je me pose quelques questions.
Purebasic est un language procedural, ogre est oriente objet.
De plus, c++ dispose d'espaces de noms, permettant de ranger les objets par domaines, a ma connaissance, ce n'est pas le cas en purebasic.
Admettons, je veux wrapper l'objet "Camera" de ogre. en c++, pour instancier une camera, ca devrait ressembler a:
Ogre::Camera* maCamera = new Ogre::Camera("camera1");
(sans parler de toutes les surcharges...)
Pure n'est pas oriente objet, et je ne vois alors pas comment je vais instancier un objet...ni meme comment la detruire.
devrais-je utiliser des indexes pour stocker les objets?
Purebasic dispose t-il de tableaux/listes dynamique?
et devrais-je redefinir un type camera comme une structure?
Deplus, je ne sais pas comment comment transposer toutes les methodes qu'un objet comme la camera en PB, dois-je reecrire toute les methodes comme de simples fonctions?
Comment immagineriez-vous une librairie vous donnant acces a ogre?
et enfin, est-ce quelqu'un d'autre travaille deja dessus?
Voila mes questions, merci
Depuis le temps je me suis mis au c++, et je commence a bien connaitre Ogre.
Aujourd'hui je repasse par ici, et je vois que qu'on en est a purebasic 4, j'entends parler de de grandes ameliorations, mais du cote de la 3d, rien a bouge...
Par contre ogre a enormement evolue, et de nombreux outils utiles ont egalement apparu.
Je pense que je pourrais wrapper ogre, mais je me pose quelques questions.
Purebasic est un language procedural, ogre est oriente objet.
De plus, c++ dispose d'espaces de noms, permettant de ranger les objets par domaines, a ma connaissance, ce n'est pas le cas en purebasic.
Admettons, je veux wrapper l'objet "Camera" de ogre. en c++, pour instancier une camera, ca devrait ressembler a:
Ogre::Camera* maCamera = new Ogre::Camera("camera1");
(sans parler de toutes les surcharges...)
Pure n'est pas oriente objet, et je ne vois alors pas comment je vais instancier un objet...ni meme comment la detruire.
devrais-je utiliser des indexes pour stocker les objets?
Purebasic dispose t-il de tableaux/listes dynamique?
et devrais-je redefinir un type camera comme une structure?
Deplus, je ne sais pas comment comment transposer toutes les methodes qu'un objet comme la camera en PB, dois-je reecrire toute les methodes comme de simples fonctions?
Comment immagineriez-vous une librairie vous donnant acces a ogre?
et enfin, est-ce quelqu'un d'autre travaille deja dessus?
Voila mes questions, merci
-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
Dans la plupart des cas pour ce genre de wrap, c'est malheureusement laDeplus, je ne sais pas comment comment transposer toutes les methodes qu'un objet comme la camera en PB, dois-je reecrire toute les methodes comme de simples fonctions?
seule solution viable...
Mais le projet est ambitieux. Je wrappe mon propre projet pour PB, donc je commence
a connaitre deux ou trois truc, alors si tu as besoin d'un ou deux coups de main n'hesite pas ...
Force et sagesse...
et tu peux aussi t'inspirer des codes sources de PureBasic.
Il parait qu'actuellement c'est les sources de l'ancienne version (3.94) mais ça peut déjà te donner une idée de la façon de procéder.
Il parait qu'actuellement c'est les sources de l'ancienne version (3.94) mais ça peut déjà te donner une idée de la façon de procéder.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
mmm....Dans la plupart des cas pour ce genre de wrap, c'est malheureusement la
seule solution viable...
Mais le projet est ambitieux. Je wrappe mon propre projet pour PB, donc je commence
a connaitre deux ou trois truc, alors si tu as besoin d'un ou deux coups de main n'hesite pas ...
je dois donc reecrire de simples fonctions qui prennent en parametre un pointeur (de camera par exemple)?
ou devrais-je plutot permettre a l'utilisateur de les specifier via des index?
c'est ma grande question, par pointeurs ou par indexation?
je dois egalement faire des fonctions genre "CreateCamera()" et "DestroyCamera" et donc gerer la construction/destruction des objets a l'interieur de la lib?
purebasic supporte t-il les surcharges de fonctions?
ce qui est difficile dans ce projet, ce n'est pas de wrapper Ogre en lui meme, c'est de creer une interface permettant de gerer un moteur oriente objet a travers un langage procedural...
si Fred accepte de m'offrir Purebasic, et avec l'aide des astuces de Tmyke je pourrais entammer un wrap de ogre. personellement je suis un fan de c++, et je le ferais juste pour offrir mon support au langage, pour la communaute; je pense qu'un purebasic gratuit vaut bien mon initiative, qu'en pensez vous?

je pense que si tu vas jusqu'au bout çà peut valoir le coup.
ceci dit purebasic n'est pas si cher...
concernant la question pointeur/id il est vrai que çà fait souvent débat.
à mon avis,
les pointeurs meme s'ils permettent un accès direct, donc plus rapide
ne sont pas pour autant dans l'esprit basic.
les identifiants, eux, le sont !
la grande majorité des fonctions purebasic sont avec des Id dont le fameux #PB_Any. c'est bien pratique, et çà émule entre guillemets des objets.
le SDK purebasic propose justement un fichier ObjectManager.lib spécialement dédié à la programmation des Id pour être le proche de l'esprit purebasic.
il y a un topic un intéressant à ce sujet ici :
http://purebasic.forum-gratuit.com/view ... ectmanager
à noter que la meme API est dispo aussi en C si tu as besoin.
ceci dit purebasic n'est pas si cher...
concernant la question pointeur/id il est vrai que çà fait souvent débat.
à mon avis,
les pointeurs meme s'ils permettent un accès direct, donc plus rapide
ne sont pas pour autant dans l'esprit basic.
les identifiants, eux, le sont !
la grande majorité des fonctions purebasic sont avec des Id dont le fameux #PB_Any. c'est bien pratique, et çà émule entre guillemets des objets.
le SDK purebasic propose justement un fichier ObjectManager.lib spécialement dédié à la programmation des Id pour être le proche de l'esprit purebasic.
Code : Tout sélectionner
Import #PB_Compiler_Home + "Compilers/ObjectManager.lib"
PB_Object_GetOrAllocateID (Objects, Object.l)
PB_Object_GetObject (Objects, Object.l)
PB_Object_IsObject (Objects, Object.l)
PB_Object_EnumerateAll (Objects, ObjectEnumerateAllCallback, *VoidData)
PB_Object_EnumerateStart (Objects)
PB_Object_EnumerateNext (Objects, *object.Long)
PB_Object_EnumerateAbort (Objects)
PB_Object_FreeID (Objects, Object.l)
PB_Object_Init (StructureSize.l, IncrementStep.l, ObjectFreeFunction)
PB_Object_GetThreadMemory (MemoryID.l)
PB_Object_InitThreadMemory(Size.l, InitFunction, EndFunction)
EndImport
http://purebasic.forum-gratuit.com/view ... ectmanager
à noter que la meme API est dispo aussi en C si tu as besoin.
Je pense choisir la voie des pointeurs, pour plusieurs raisons.Flype a écrit :je pense que si tu vas jusqu'au bout çà peut valoir le coup.
ceci dit purebasic n'est pas si cher...
concernant la question pointeur/id il est vrai que çà fait souvent débat.
à mon avis,
les pointeurs meme s'ils permettent un accès direct, donc plus rapide
ne sont pas pour autant dans l'esprit basic.
les identifiants, eux, le sont !
-pour la rapidite, l'idexation consomme des ressources.
-pour conserver le dynamisme d'un moteur oriente objet.
-l'indexation se revele etre source de confusion lorsque que le projet prend de l'ampleur.
-Parce que l'interface d'ogre marche par pointeurs
puis les pointeurs c'est pas si sorcier =)
Si je demande Purebasic gratos, c'est symbolique.
je pourrais le trouver sur le P2P, mais ce n'est pas cela que je veux.
Je ne ressens pas le besoin d'utiliser PB, j'ai un poste de programmeur c++ en californie, je ne vais pas acheter quelque chose qui ne m'est pas utile.
Je me souviens il y a quelque annees avoir essayer Dark basic, blitz3d, purebasic, je recherchais le moyen d'avoir les plus beaux graphismes qu'un basic puisse offrir.
Purebasic est le basic le plus performant que je connaisse, mais n'a pas de moteur 3d descent.
Purebasic + Ogre (bien adapte) ca defoncerait sa mere (et la concurence aussi) ;-D
J'ai les competences pour wrapper un fabuleux moteur 3d, j'y inclurais les principales fonctions de l'API de ogre, mais je peux pas promettre de tout wrapper.
Donc voila, je demande pas de tunes, juste de quoi bosser

c'est bizard ton obstination a vouloir Purebasic Gratos, pour quelqu'un qui est payé en dollars
et si ce n'étais pas le cas, c'est bien tenté
dans tout les cas , le mieux pour toi, c'est de contacter Fred, car a part lui
personne ne pourra te donner une licence valide
donc , je ne vois meme pas l'interet d'en parler ici
a moins bien sur, que ce soit pour faire un audit, de qui voudrai bien te donner un purebasic complet
...

et si ce n'étais pas le cas, c'est bien tenté

dans tout les cas , le mieux pour toi, c'est de contacter Fred, car a part lui
personne ne pourra te donner une licence valide
donc , je ne vois meme pas l'interet d'en parler ici

a moins bien sur, que ce soit pour faire un audit, de qui voudrai bien te donner un purebasic complet

que je sois paye en dollars ou pas je vois pas la difference.Dobro a écrit :c'est bizard ton obstination a vouloir Purebasic Gratos, pour quelqu'un qui est payé en dollars![]()
et si ce n'étais pas le cas, c'est bien tenté![]()
obstination pas vraiment, c'est une proposition sans but lucratif qui ajoute du capital au language. perso les basics, ca fait longtemps que j'ai arrete...
"et si ce n'est pas le cas c'est bien tente" mmm sceptique? tu peux voir que les "e" de mes messages ne disposent pas d'accent, les clavier qwerty n'en dispose pas. si ca te suffis...
contacter Fred, bonne idee, je pensais qu'il verrai le post.
Il est 2h du mat, vais m'coucher

- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Fred ne passe plus sur le forum francais depuis pas mal de temps !
Il est en plein debug de la V4 Linux !
Il est en plein debug de la V4 Linux !
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net