Raydium 3D Game Engine

Official forum for everything about Raydium, ManiaDrive, MeMak, ...
It is currently Sun May 19, 2024 2:41 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: Thu Jan 20, 2005 8:45 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
En ce qui concerne les outils dont tu parles, je n'en ai testé aucun, donc je te laisse faire tes propres tests. J'insiste cependant sur le fait que cela créé une nouvelle dépendance pour Raydium, et qu'il faut donc que ces outils soient absolument nécessaires.

Tant que j'y pense : http://raydium.cqfd-corp.org/data//raydium200105.tar.gz

Quand à Windows, on dispose des .lib, qui sont l'équivalent des .a sous Linux.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jan 20, 2005 9:10 am 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Disons que je préfère utiliser SCons et CMake (les deux comme ca on a le choix) car les makefile ce n'est pas très portable sous Windows. Et ces outils permettent de compiler aussi facilement sous windows que sous unix.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jan 20, 2005 11:10 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
N'hésite pas. Tout recherche est intéressante. Mais attention aux dépendances et à la complexité induite ! ;)


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 23, 2005 1:10 am 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
finalement, je préfère rester à mon super-makefile pour le moment (car il y besoin de faire pas mal d'opérations complexes, de générer certains fichiers ...).
Ce que je voulais faire c'était juste proposer dautre sméthodes de compilation car mon makefile n'est particulièrement pas portable (MS Windows ?)

Par contre, j'ai de plus en plus l'impression qu'il me faudrait modifier les sources de manière générale. Faire un script qui s'occuper de toutes les modifications est de plus en plus difficile car maintenant, il faudrait ajuster les fichiers headers créés et il faudrait au début de chaque fichier .c du projet une inclusion des fichiers .h nécessaires.

Ce que je propose, c'est d'inclure dans les sources du projet les fichiers headers. mais il faudrait que j'aie une instruction pour l'extension de fichier. Jusqu'alors, j'utilise .c.h qui est une extension un peu batarde mais c'est pour ne pas créer un conflit avec les fichiers déja existants particle2.h et ode.h

Ce serait aussi bien quon me donne le nom d'une constante qui sera définie uniquement si la compilation est faite séparément. Et ainsi, je pourrais modifier dans WVS les fichiers .c en indiquant au début les fichiers .h nécessiares à inclure (inclusion uniquement si la constante est définie).

Voila, c'est comme tu veux. Je peux soit travailler sur chaque fichier séparément en modifiant WVS et me retrouver avec un truc qui j'espère compile ou alors prendre un snapshot des sources, les modifier et ensuite les proposer.
L'inconvénient, si je travaille sur un snapshot des sources que je modifie entièrement, c'est que l'opération risque de durer un certain temps peandant lequel les sources auront changées et le travail sera a refaire.

J'attend une réponse

Mildred


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 23, 2005 3:38 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Je ne suis pas sur de tout comprendre dans tes explications, mais l'heure ne m'aide pas :)
Une chose est sûre, je suis tout à fait d'accord pour "geler" le dev de Raydium le temps que tu appliques des modifs au code, quite à te faire remonter des modifs si elles sont trop importantes, si ce temps n'est pas trop élevé. Attention à WVS, sur lequel la version de Raydium n'est pas au top de la mise à jour.

J'espère qu'on est d'accord pour que les sources restent compatibles avec l'ancienne facon de compiler :)

Tu as une idée du temps que ça peut prendre ? (en très gros)


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 23, 2005 11:23 am 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Xfennec wrote:
Je ne suis pas sur de tout comprendre dans tes explications, mais l'heure ne m'aide pas :-)

Allez, je recommence:

J'ai besoin e fichier .h qui correspondent a chacun des fichiers .c du dossier raydium. (sauf reg_api.c). Car des autres fichiers .c utilisent des fonctions ou variables des autres fichiers .c et chaque fichier .c sera compilé séparément (un "gcc -c monfichier.c -o monfichier.o" sur chacun de ces fichiers)
De plus, u début de ces fichiers .c j'ai besoin de faire des #include (conditionnel: seulement si on utilise la nouvelle méthode de compilation) vers les fichiers .h en question.
J'ai besoin d'un emplacement et dune extensions au fichiers .h (qui ne fasse pas conflit avec ode.h qui existe déja par exemple). J'ai aussi besoin d'un nom de constante pour l'inclusion confitionelle.

-----

Xfennec wrote:
Attention à WVS, sur lequel la version de Raydium n'est pas au top de la mise à jour.

Ca veut dire quoi ? vous n'utilisez pas WVS pour gérer le projet ?

Xfennec wrote:
J'espère qu'on est d'accord pour que les sources restent compatibles avec l'ancienne facon de compiler :)

Oui, bien sur ... (quand même) La différence se fera juste par une constante definie ou pas.

Xfennec wrote:
Tu as une idée du temps que ça peut prendre ? (en très gros)

J'espère le pus rapide possible mais je pense que cela peut prendre au minimum quelques jours. Si des problèmes se présentent, cela peut durer ...
Mais a ce moment la, il faudra sans doute dégeler le projet en appliquant mes modifications (qui n'auront aucun impact si on utilise la méthode de compilation classique) et de travailler desus.


Je ne pensait pas que vous alliez geler le projet pour moi ... le mieux serait peut être de geler les fichiers un par un. Si WVS est utilisé, je gêle un fichier lorsque je veux travailler dessus.
L'avantage c'est que le fichier reste gelé très peu de temps.

En passant, le lien http://raydium.cqfd-corp.org/data//raydium200105.tar.gz que tu m'as donné au dessus, c'est la version la plus récente de raydium ? Serieusement, c'est quoi ?

Mildred


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 23, 2005 11:34 am 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
J'ai déja une petite idée sur la modification des sources:
index.c sera modifié pour ne contenir que des #include et un fichier main.c sera créé pour ce qu'il y a au début.
Qu'est ce que tu em penses ?

Voila ce que ca devrait donner:

index.c
Code:
/*
    Raydium - CQFD Corp.
    http://raydium.cqfd-corp.org
    License: GPL - GNU General Public License, see "gpl.txt" file.
*/

// pour que les fichiers inclus ci parès n'incluent pas de fichiers headers
#define DONT_INCLUDE_HEADERS

#include "main.c"

#ifndef RAYDIUM_NETWORK_ONLY
#include "log.c"
#include "signal.c"
#include "trigo.c"
#include "random.c"
#include "timecall.c"
#include "profile.c"
#include "parser.c"
#include "fog.c"
#include "window.c"
#include "capture.c"
#include "clear.c"
#include "background.c"
#include "light.c"
#include "key.c"
#include "mouse.c"
#include "joy.c"
#include "texture.c"
#include "render.c"
#include "particle2.c"
#include "sound.c"
#include "callback.c"
#include "normal.c"
#include "vertex.c"
#include "osd.c"
#include "register.c"
#ifdef PHP_SUPPORT
#include "php.c"
#include "rayphp.c"
#endif
#include "console.c"
#include "land.c"
#include "sky.c"
#include "internal.c"
#include "file.c"
#include "camera.c"
#include "object.c"
#include "network.c"
#include "init.c"
#ifdef ODE_SUPPORT
#include "ode.c"
#endif
#else
#include "log.c"
#include "trigo.c"
#include "random.c"
#include "timecall.c"
#include "parser.c"
#include "network.c"
#endif

main.c
Code:
/*
    Raydium - CQFD Corp.
    http://raydium.cqfd-corp.org
    License: GPL - GNU General Public License, see "gpl.txt" file.
*/

char *raydium_version="0.589";

#ifdef WIN32
#include "windows.h"
#endif

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <GL/glut.h>
#include <math.h>


[...]


void *            raydium_timecall_funct[RAYDIUM_MAX_TIMECALLS];
GLint       raydium_timecall_soft_call[RAYDIUM_MAX_TIMECALLS];
clock_t    raydium_timecall_interval[RAYDIUM_MAX_TIMECALLS];
clock_t    raydium_timecall_next[RAYDIUM_MAX_TIMECALLS];

int    raydium_register_variable_index;
int    raydium_register_function_index;
char   raydium_register_variable_name[RAYDIUM_MAX_REG_VARIABLES][RAYDIUM_MAX_NAME_LEN];
void * raydium_register_variable_addr[RAYDIUM_MAX_REG_VARIABLES];
int    raydium_register_variable_type[RAYDIUM_MAX_REG_VARIABLES];
#ifdef PHP_SUPPORT
#define ZFE zend_function_entry
#else
#define ZFE void *
#endif
ZFE raydium_register_function_list[RAYDIUM_MAX_REG_FUNCTION];

FILE *raydium_log_file;
char raydium_file_log_fopen[RAYDIUM_MAX_LOG_FOPEN][RAYDIUM_MAX_NAME_LEN];
int raydium_file_log_fopen_index;


Et un autre fichier. par exemple key.c
Code:
#ifndef DONT_INCLUDE_HEADERS
#include "headers/main.h"
#endif

#include <stdarg.h>

#ifndef RAYDIUM_NETWORK_ONLY
void raydium_console_line_add(char *format, ...);
#endif

// need to be secured
void raydium_log(char *format, ...)
{
char str[RAYDIUM_MAX_NAME_LEN];
va_list argptr;


va_start(argptr,format);
vsprintf(str,format,argptr);
va_end(argptr);

printf("Raydium: %s\n",str);
if(raydium_log_file) fprintf(raydium_log_file,"%s\n",str);
#ifndef RAYDIUM_NETWORK_ONLY
raydium_console_line_add(str);
#endif
}

headers/main.h serait le contenu de main.c


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 23, 2005 1:10 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Ca me parait cohérent, surtout qu'il y'a moyen de s'aider un peu de ce que fait déjà ton programme make_header.
Tu me dit quand tu souhaites commencer ca, que je te donne un Raydium "toute dernière version" et que je freeze les modifs.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 23, 2005 2:44 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Je veux bien commencer maintenant ...

Apparament WVS nest pas tellement utilisé (sinon, c'est la que serait la dernière archive). Dommage.
C'est vrai que ce n'est pas forcément très pratique pour comiter tout un dossier. Alors, pourquoi ne pas utiliser CVS (je dis ca mais je ne sais pas) ou subversion ?

Quand tu veux.

Mildred


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 23, 2005 4:23 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Vous pouvez aller voir sur http://louve.dyndns.org:8080/projets/raydium qui contient les dernières nouvelles. L'url http://louve.dyndns.org:8080/projets/raydium.dir/ est un lien direct sur mon dossier raydium dans mon dossier /home sur lequel je travaille. Les nouvelles les plus fraiches.

edit: j'attend la dernière version de raydium.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 23, 2005 8:48 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Je crois que je n'ai jamais réussi à joindre "louve.dyndns.org" :)

Sinon, je bosse sur la génération de lightmaps de radiosité, en modifiant FSrad, une appli windows qui est une bonne base, donc :
- Cette version de raydium est peut être déjà la même que celle que tu possèdes, je n'ai pas de moyen de vérifier cela ici.
- C'est du .zip (désolé).
- Je risque d'avoir des modifications à remonter pour les lightmaps dans Raydium d'ici quelques temps.

Pour WVS, j'ai tout simplement perdu le réflexe, puisque j'ai longtemps été le seul à m'en servir. Je vais tenter de corriger le tir. CVS me semble trop compliqué, trop complexe. J'ai même tendance à fuir cette application.

http://ftp.cqfd-corp.org/raydium23012005.zip


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 23, 2005 10:08 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
C'est bizarre que tu ne puisse pas accéder à http://louve.dyndns.org/ ... Ca fonctionne sur le port 80 et 8080 alors ... Et mon PC est toujours allumé:
Code:
$ uptime
 23:05:48 up 10 days,  3:30,  4 users,  load average: 4.22, 4.69, 6.39

Tu peux essayer avec mon IP (je crois quelle est fixe maintenant): http://82.233.96.31/

edit: si ca ne marchait pas avant, c'est normal. Je n'avais pas configuré la paserelle pour rediriger les ports 80 et 8080 sur ma machine. je viens juste de le faire.
- firewallbuilder est très pratique pour la gestion du firewall. Ca vaut le coup de l'essayer. Il permet même de mettre à jour le firewall à distance avec ssh.

Sinon, je vais sans doute faire quelquechose demain mais ce soir, je ferme boutique, je me lève tot demain et j'ai une grande journée.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jan 24, 2005 6:05 pm 
Offline

Joined: Sun Mar 16, 2003 10:27 am
Posts: 404
perso je n'y accède toujours pas :cry:


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jan 24, 2005 11:00 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Ca compile sans problèmes maintenant.
L'archive (contient tous les fichiers générés par le Makefile. tout est complet): http://82.233.96.31/projets/raydium.dir/new-raydium/raydium24012005+lib.tar.gz

Pour voir a quoi ca ressemble: http://82.233.96.31/projets/raydium.dir/new-raydium/

edit: un miroir ici: http://silkensedai.free.fr/new-raydium/ http://silkensedai.free.fr/new-raydium/raydium24012005+lib.tar.gz

J'ai pas encore testé. mais normalement, on doit inclure "raydium/index.h" à la place de "raydium/index.c" sans oublier de préciser à gcc de lier avec libraydium.

Si mon adresse ne fonctionne pas c'est embêtant ... je ne sais pas pourquoi ca ne marche pas.

edit: il y a aussi eu des erreurs à la compilation. je ne pense pas que ce soit grave mais:
Code:
raydium/camera.c: Dans la fonction « raydium_camera_path_load »:
raydium/camera.c:248: attention : affectation transforme un entier en pointeur sans transtypage
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


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 25, 2005 8:46 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Attention, les fichiers sont invalides (tronqués ?) sur le mirroir, et je n'arrive pas à atteindre ta machine.
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 ?
- L'utilisation des scripts make_header, make_makefile, etc est toujours nécessaire ? N'est-il pas possible "d'officialiser" les .h ?
- Pourquoi "raydium_osd_ega[]" bénéficie-t'il d'un traitement particulier dans main.c ?

Je me rend compte aussi que j'ai (encore) loupé un de tes messages, plus haut, au ton un peu acide ;) Je me permet donc de répondre maintenant pour éviter que tu penses que je t'ignore :) :
Quote:
Ca veut dire quoi ? vous n'utilisez pas WVS pour gérer le projet ?

Pour la partie code, "vous" = moi, et comme je l'ai dit ensuite, j'ai du coup perdu l'habitude de poster mes modifs sur WVS.

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") :)


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 1 guest


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