Raydium 3D Game Engine

Official forum for everything about Raydium, ManiaDrive, MeMak, ...
It is currently Sun Apr 28, 2024 2:42 pm

All times are UTC




Post new topic Reply to topic  [ 95 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7  Next
Author Message
 Post subject:
PostPosted: Tue Jan 25, 2005 5:04 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Xfennec wrote:
Attention, les fichiers sont invalides (tronqués ?) sur le mirroir, et je n'arrive pas à atteindre ta machine.

Tu peux télécharger l'archive complète (la taille correspond alors elle doit être complète) qui contient tout et même ce qui est innutile (en gros les scripts python): http://silkensedai.free.fr/new-raydium/raydium24012005+lib.tar.gz
Xfennec wrote:
Sinon, j'ai essayé de regarder le principe à partir des rares fichiers que j'arrive à lire, et il me manque des infos pour comprendre, je pense :
- HEADER_MAIN ? DONT_INCLUDE_HEADERS ? Quels rôles précis ?

DONT_INCLUDE_HEADERS est définie lorsque on fait une compilation clasique (comme avant).
Si cette constante n'est pas définie alors, chaque fichier .c inclus les fichiers headers qui serviront à la compilation séparée

HEADER_MAIN est la partie la moins jolie. En fait, e fichier main.c contient quantité de définitions et seulement deux affectations de variables (raydium_version et raydium_osd_ega[]). La seule chose qui diffère alors entre main.c et main.h c'est l'affectation ou non des valeurs à ces variables.
Si je faisait une copie de main.c en le placant dans headers/main.h, j'avais des problèmes de compilation (sans doute liés au dossier qui n'était plus le même). Cette constante est donc un moyen détourné pour placer le fichier .h dans le dossier raydium (du coup ca marche).

En fait cest simple:
- si HEADER_MAIN est définie: main.c ne fait pas d'affectation de variables et joue le role de main.h
- si HEADER_MAIN n'est pas définie, main.c se comporte normalement (avec affectation des variables)

Je te l'accorde, c'est à modifier car c'est pas beau.
Xfennec wrote:
- L'utilisation des scripts make_header, make_makefile, etc est toujours nécessaire ? N'est-il pas possible "d'officialiser" les .h ?

Non, ce nest pas nécessaire. pour compiler, on utilise simplement le Makefile déja généré. le travail principal a été d'inclure au cas par cas (vraimment) les fichiers headers. Je n'ai pas eu a retoucher les fichiers headers autogénérés. (sauf main.c/main.h)
Xfennec wrote:
- Pourquoi "raydium_osd_ega[]" bénéficie-t'il d'un traitement particulier dans main.c ?

Tout simplement car il y avait une affectation et que sinon, lors de la compilation du .so, il y avait redéfinition de symbole.
Xfennec wrote:
Quote:
En passant, le lien ...raydium200105.tar.gz que tu m'as donné au dessus, c'est la version la plus récente de raydium ? Serieusement, c'est quoi ?

C'était bien la dernière version à cette date, mais numérotée à l'envers ("20/01/05") :)

Moi qui pensait à mai 2001 ... lol.

Voila, ca éclaire ?

Mildred


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 25, 2005 7:17 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Je n'ai que peu de temps à l'instant, mais :

- l'archive est la première chose que j'ai cherché à télécharger ce matin, et je n'arrive pas à extraire autre chose que 3 ou 4 fichiers. Problème à l'upload ?

- Le fait de rendre les .h "officiels" n'est pas forcément une contrainte... ça peut être une bonne chose pour Raydium, à terme. D'ailleurs, le nouveaux "domaines" complexes avait déjà commencé à suivre cette piste (particle2, ode, php). Le fait est que c'est toi qui a la vue la plus claire sur ce point pour l'instant, et que c'est pour ça que ton avis m'intéresse sur cette question.

J'ai d'autres trucs qui me viennent à l'esprit après avoir lu ton post, mais j'attend d'avoir l'archive avant de t'embrouiller avec mes suppositions :)


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 25, 2005 9:27 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Xfennec wrote:
- l'archive est la première chose que j'ai cherché à télécharger ce matin, et je n'arrive pas à extraire autre chose que 3 ou 4 fichiers. Problème à l'upload ?

Oui, c'est bizarre ... C'est lorsque j'upload avec nautilus. je vais réessayer avec gftp.
Sinon, un petit bugfix sur le firewall: il devrait maintenant accepter les connexions exterieures: http://louve.dyndns.org. Et c'est le cas puisque le validateur W3C arrive a valider ma page ...

Xfennec wrote:
- Le fait de rendre les .h "officiels" n'est pas forcément une contrainte... ça peut être une bonne chose pour Raydium, à terme. D'ailleurs, le nouveaux "domaines" complexes avait déjà commencé à suivre cette piste (particle2, ode, php). Le fait est que c'est toi qui a la vue la plus claire sur ce point pour l'instant, et que c'est pour ça que ton avis m'intéresse sur cette question.

Les fichiers headers sont tout à fait prévus pour être concervés et éventuellement modifiés avec le temps. C'est simplement qu'actuellement, il n'y a pas de différence entre ces fichiers headers et les fichiers générés par le Makefile.
Le Makefile que j'ai créé est un outil de travail: il m'a permis de générer ces fichiers mais pour compiler raydium, un Makefile un peu plus léger serait bienvenu.

edit: c'est la première fois que je fais du c de manière serieuse. Avant, je n'avais fait que des HelloWorld en tout genres
je vais faire une nouvelle archive contanant un Makefile allégé et qqes autres modifications.


Last edited by mildred on Tue Jan 25, 2005 9:46 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 25, 2005 9:44 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
J'ai amélioré un peu le main.c qui était très moche.

Maintenant, il y a un nouveau fichier:

"raydium/main.c" est compilé dans "raydium/compile/main.o"
"raydium/headers/main.h" n'est qu'une inclusion vers "raydium/main.h"
"raydium/main.h" est le fichier header de "raydium/main.c"

Si je ne met pas le main.h dans le dossier raydium directement, j'ai des erreurs du type:
Code:
In file included from raydium/headers/main.h:78,
                 from raydium/background.c:8:
raydium/headers/php.h:13: error: erreur d'analyse syntaxique before "TSRMLS_DC"
In file included from php/Zend/zend_globals.h:27,
                 from php/main/php_globals.h:23,
                 from raydium/headers/main.h:80,
                 from raydium/background.c:8:
php/Zend/zend_globals_macros.h:37: error: erreur de syntaxe before "struct"
php/Zend/zend_globals_macros.h:47: error: erreur de syntaxe before "zend_executor_globals"
php/Zend/zend_globals_macros.h:56: error: erreur de syntaxe before "zend_alloc_globals"
php/Zend/zend_globals_macros.h:66: error: erreur de syntaxe before "zend_scanner_globals"
php/Zend/zend_globals_macros.h:76: error: erreur de syntaxe before "zend_scanner_globals"
In file included from php/Zend/zend_globals.h:29,
                 from php/main/php_globals.h:23,
                 from raydium/headers/main.h:80,
                 from raydium/background.c:8:
php/Zend/zend_stack.h:32: error: erreur de syntaxe before "int"

n'oublions pas que main.c comme main.h incluent des fichiers venant de php. Et je ne sais pas trop ce qui s'y passe.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jan 26, 2005 10:47 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
J'ai modifié quelques trucs (notament les headers retouchés à la main, plus question de les autogénérer).
J'ai tenté la compilation de test6.c retouché (sans php).

- ca ne compile pas avec libraydium.a (il ne trouve pas les symboles de libode.a et libphp.a)
- ca compile avec libraydium.so mais ca ne marche pas:
Code:
$ ./test
./test: relocation error: ./libraydium.so.0: undefined symbol: raydium_trigo_abs


Chose très étrange, lors de la compilation, la fonction raydium_trigo_abs() (qui est une macro) n'apparait nulle part (macro remplacée donc).
Et lorsque je fait un "strings" sur libraydium.so ou l'executable test, rien non plus.

Un forum LinuxFR: http://linuxfr.org/forums/19/6428.html

Mildred


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jan 27, 2005 8:03 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Une macro n'est pas compilée, elle doit faire partie intégrante du .h destiné aux applications.
Sinon, quand tu compiles avec la libraydium.a, tu link bien les autres .a en même temps ?

Je vais tenter de prendre du temps pour me pencher un peu sur tout ça.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jan 27, 2005 12:18 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Xfennec wrote:
Une macro n'est pas compilée, elle doit faire partie intégrante du .h destiné aux applications.
Sinon, quand tu compiles avec la libraydium.a, tu link bien les autres .a en même temps ?

La macro a bien été ajoutée au .h ...
lorsque je compile libraydium.a, la seule chose que je fais est d'archiver les fichiers .o de raydium avec ar. puis ranlib pour construire l'index.
Je me demante comment faire pour lier ...

<hs>
la je n'ai pas beaucoup de temps mais ensuite, je pense faire PyRaydium (interface Raydium en Python). Ce serait bien, non ?
Je réfléchis déja au format de fichier des maps de mon jeu.
je dois partir ...
</hs>


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jan 27, 2005 7:38 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
erreur bête: j'avais fait une copie de libraydium.so au lieu de faire un lien symbolique. Du coup, ca ne marchait pas alors que j'avais déja réparé la lib ...

Maintenant, lorsque je lance test6c.c, j'ai une erreur de segmentation ...
Je vais réessayer en activant php ...

Voila comment je compile:
Code:
gcc ./test6c.c -o test libraydium.so -Iphp/ -Iphp/main/ -Iphp/Zend -Iphp/TSRM


Voici ce que j'ai sur la console:
Code:
$ ./test
Raydium: Using Raydium 0.595
Raydium: command line args: OK
Raydium: Requesting 640x480:32 mode
Raydium: using GeForce4 MX 440/AGP/SSE/3DNOW!, from NVIDIA Corporation (version 1.5.1 NVIDIA 61.11)
Raydium: Signal Handler: OK
Raydium: Platform "4xfloat" vector size is: 16 byte(s) long
Raydium: OpenGL implementation maximum texture size: 2048x2048
Raydium: OpenGL hardware providing 2 texture unit(s)
Raydium: vertex arrays memory: OK
Raydium: keyboard: OK
Raydium: mouse: OK
Raydium: /dev/input/event0: cannot open (rw), no Force Feedback.
Raydium: joy: FAILED
         ERROR opening /dev/js0
Raydium: sound: Buffer creation successfull
Raydium: sound: OK
Raydium: PHP support: OK
Raydium: atexit functions: OK
Raydium: lights: OK
Raydium: objects: OK
Raydium: network: OK
Raydium: timer: detection: 1 iterations: diff: 2 steps (1000000/sec)
Raydium: timecall: method accuracy = 0.002 ms (499999.97 Hz)
Raydium: timecall: Using basic gettimeofday() method
Raydium: timecall: OK (499999 Hz)
Raydium: timecall: softcall 0: 1 Hz (1000000 clocks interval)
Raydium: particle: OK
Raydium: Raydium engine reseted to original state
Raydium: timecall: callback 1: 400 Hz (2500 clocks interval)
Raydium: physics: ODE Net: 10 element(s)/packet
Raydium: physics: OK
Raydium: Engine is now ready.
         -----------------------------------------------------------
Raydium: sound: Tried to set negative or 0 Pitch , clipped to 0.1
Raydium: Texture num 1 (BOXfront.tga) loaded: 512x512, 3 bpp (blend: 0)
Raydium: Texture num 2 (BOXback.tga) loaded: 512x512, 3 bpp (blend: 0)
Raydium: Texture num 3 (BOXleft.tga) loaded: 512x512, 3 bpp (blend: 0)
Raydium: Texture num 4 (BOXright.tga) loaded: 512x512, 3 bpp (blend: 0)
Raydium: Texture num 5 (BOXbottom.tga) loaded: 512x512, 3 bpp (blend: 0)
Raydium: Texture num 6 (BOXtop.tga) loaded: 512x512, 3 bpp (blend: 0)
Raydium: timecall: softcall 2: 1 Hz (1000000 clocks interval)
Raydium: Object: file "a.tri" loaded, version 1
Raydium: Texture num 7 (stuntsd.tga) loaded: 256x256, 3 bpp (blend: 0)
Raydium: Texture num 8 (stuntsa.tga) loaded: 256x256, 3 bpp (blend: 0)
Raydium: Texture num 9 (stuntsh.tga) loaded: 256x256, 3 bpp (blend: 0)
Raydium: Texture num 10 (stuntsb.tga) loaded: 256x256, 3 bpp (blend: 0)
Raydium: Texture num 11, rgb(0.500000,0.500000,0.500000) is RGB Color
Raydium: ODE: Error: Cannot delete object: invalid name or index
Erreur de segmentation


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jan 27, 2005 10:22 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
compile le tout avec le -g (je t'avais dit de laisser cette option ;) ), et fait :

Code:
gdb test
run
bt

Ca te donnera assez d'infos pour comprendre ce qui ne va pas. N'hésite pas à m'envoyer le binaire sinon.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jan 27, 2005 10:46 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Si tu veux voir ce que ca donne pour les binaires, tu peux trouver librayrium à l'adresse http://louve.dyndns.org:8080/projets/raydium.dir/new-raydium/
test peut se trouver ici: http://louve.dyndns.org:8080/projets/raydium.dir/raytest/raydium_prog/ (fichier test et test6c.c)
Ligne de commande pour compiler:
Code:
$ gcc ./test6c.c -g -o test libraydium.so -Iphp/ -Iphp/main/ -Iphp/Zend -Iphp/TSRM

Ne pas oublier:
Code:
$ export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH


Sinon, tu sait comment lier une bibliothèque statique .a ?

Sinon, je recompile libraydium avec -g (lorsque je posterais, ce sera fini). je fais aussi une archive .tar.gz si tu veux récupérer le tout (raydium27012005+lib.tar.gz).


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jan 27, 2005 10:54 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Sinon, j'ai les erreurs suivantes.
En compilant libraydium:
Code:
raydium/console.c: Dans la fonction « raydium_console_exec_script »:
raydium/console.c:157: attention : affectation transforme un entier en pointeur sans transtypage
raydium/particle2.c: Dans la fonction « raydium_particle_preload »:
raydium/particle2.c:115: attention : affectation transforme un entier en pointeur sans transtypage
raydium/particle2.c: Dans la fonction « raydium_particle_generator_load_internal »:
raydium/particle2.c:176: attention : affectation transforme un entier en pointeur sans transtypage
raydium/particle2.c: Dans la fonction « raydium_particle_generator_load »:
raydium/particle2.c:482: attention : affectation transforme un entier en pointeur sans transtypage
raydium/php.c: Dans la fonction « raydium_php_exec »:
raydium/php.c:132: attention : affectation transforme un entier en pointeur sans transtypage
raydium/sound.c: Dans la fonction « raydium_sound_LoadWav »:
raydium/sound.c:77: attention : affectation transforme un entier en pointeur sans transtypage
raydium/sound.c: Dans la fonction « raydium_sound_load_music »:
raydium/sound.c:526: attention : affectation transforme un entier en pointeur sans transtypage


En compilant test6c.c:
Code:
test6c.c: Dans la fonction « boom »:
test6c.c:81: attention : passage de l'argument n°2 de « raydium_particle_generator_move » d'un type pointeur incompatible
test6c.c:82: attention : passage de l'argument n°2 de « raydium_particle_generator_move » d'un type pointeur incompatible
test6c.c:85: attention : passage de l'argument n°2 de « raydium_sound_SetSourcePos » d'un type pointeur incompatible
test6c.c: Dans la fonction « display »:
test6c.c:646: attention : passage de l'argument n°2 de « raydium_particle_generator_move_name » d'un type pointeur incompatible


C'est normal ?
Je crois que toutes les erruers e compilation libraydium font a cause dun fp=raydium_file_fopen() ou des fonctions d'ouverture de fichier ...
Un peu avant: FILE *fp;

Mildred qui va a grenoble demain


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jan 28, 2005 1:51 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Heu... change de clavier et/ou achète du temps :)

Je vais tenter de regarder ce week-end ces erreurs, car les numéros de ligne ne correspondent à rien chez moi, et je ne comprend pas tout.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jan 31, 2005 4:56 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Je vais avoir besoin d'appliquer des modifications à Raydium très prochainement (asap, en fait). Cela va concerner file.c, render.c, index.c et init.c (a vue de nez).
Qu'en est-il de tes modifs ? Quelle est la meilleure méthode pour qu'on s'épargne le plus de boulot de "resynchronisation" possible ?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 01, 2005 7:24 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
tu peux récupérer la dernière version de raydium (le tar.gz du 27/01/2005). J'ai rien fait de nouveau depuis (manque de temps, je passe le BAC Blanc ces temps ci).
Sinon, je ne pense pas que jaie besoin de modifier beaucoup de choses encore ... Seulement il y a cee erreur de segmentation que je ne comprends pas ...
Tu sais ce que ca veut dire erreur de segmantation ?

Pour récupérer l'archive c'est http://louve.dyndns.org sauf que le firewall est trop restrictif il semblerait. Je met ca sur un cmpte free rapidement ...


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 01, 2005 10:54 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
J'ai modifié le firewall ... ca devrait fonctionner ...
Quelqu'un peut tester http://louve.dyndns.org/ ?

Sinon, le miroir (mis à jour toutes les heures lorsque mon PC est alumé) en cours de remplissage est: http://mildred632.free.fr/
Le fichier intéressant: http://mildred632.free.fr/projets/raydi ... lib.tar.gz

Mildred


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 95 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 208 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group