l'idee de wrapper Ogre3D pour pure

Sujets variés concernant le développement en PureBasic
Caius
Messages : 4
Inscription : jeu. 02/nov./2006 4:35

l'idee de wrapper Ogre3D pour pure

Message par Caius »

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
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

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?
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 ...
Force et sagesse...
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

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.
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.
Caius
Messages : 4
Inscription : jeu. 02/nov./2006 4:35

Message par Caius »

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 ...
mmm....
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? :)
Anonyme

Message par Anonyme »

je pense qu'un purebasic gratuit vaut bien mon initiative, qu'en pensez vous?
Ta pas mal au c... :D mais tu as raisons, demande quand même :D
En tout cas c'est une initiative super sympa :wink:
Bon courage.

@++
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

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.

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 
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.
Image
Caius
Messages : 4
Inscription : jeu. 02/nov./2006 4:35

Message par Caius »

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 !
Je pense choisir la voie des pointeurs, pour plusieurs raisons.
-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 ;-)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

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é :lol:

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 :? ...
Caius
Messages : 4
Inscription : jeu. 02/nov./2006 4:35

Message par Caius »

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é :lol:
que je sois paye en dollars ou pas je vois pas la difference.
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 ;-)
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Fred ne passe plus sur le forum francais depuis pas mal de temps !

Il est en plein debug de la V4 Linux !
Répondre