Username:

Password:


collapse
Who's Online
  • Dot Invités: 11
  • Dot Caché: 0
  • Dot Membres: 0

There aren't any users online.

* Shoutbox
Refresh History
  • kriss: oui.. je dois faire des demandes pour que google refasse des analyse du site afin de "voir" s'il est tjr malveillant
    Dcembre 08, 2011, 22:47:27
  • Leopold: Cool! Mais Firefox me le déclare toujours malveillant...
    Dcembre 08, 2011, 22:30:32
  • kriss: réouverture du forum !
    Dcembre 06, 2011, 00:48:58
  • Fabien: Coucou facto!! Trop bon de repasser ici :)
    Septembre 25, 2011, 18:06:22
  • Krän: aye ! ^^
    Aot 21, 2011, 23:43:29
  • RPG-Man: lol manu
    Aot 20, 2011, 00:24:00
  • RPG-Man: JE SUIS REVENU MOUHAHA
    Aot 20, 2011, 00:22:26
  • Manucyan: Ca dit quoi un ivrogne dans le noir ? "hé... t'es qui là ?" xd
    Mai 07, 2011, 18:11:20
  • Krän: Il est 2h46 et tout est calme ! :)
    Mai 05, 2011, 01:47:01
  • Manucyan: La tronche du bestiaire ? Un pokédex ! xd
    Avril 30, 2011, 21:18:09
  • Manucyan: désolé je pensais que tout le monde connaissait le phénomène du rickroll (cf wikipédia)
    Avril 30, 2011, 14:08:48
  • kriss: ca merite un ban pour ce lien oO
    Avril 30, 2011, 12:29:51
  • RPG-Man: Sale vilain
    Avril 30, 2011, 11:26:31
  • Krän: Never gonna give u up, never gonna let u dooowwwn ...
    Avril 28, 2011, 20:29:20
  • kriss: en effet mais ce n'est pas normal.. il y a un bug que je dois trouver ^^
    Avril 25, 2011, 10:30:16
  • Leopold: Pour la mise à jour, on peut cliquer sur "Refresh" (deux flèches vertes) ou sur "History" (pendule).
    Avril 22, 2011, 21:31:57
  • RPG-Man: Manque plus qu'elle se mette à jour toute seule quand on ajoute un message et c'est le must !
    Avril 21, 2011, 20:29:39
  • RPG-Man: le shootbox CAY LE BIEN
    Avril 21, 2011, 20:29:14
  • kriss: on appel ca une shootbox :p
    Avril 18, 2011, 16:47:13
  • Manucyan: hé mais c'est marrant !
    Avril 17, 2011, 18:03:46

The Factory » ATELIER » PROGRAMMATION » Cours Ruby et outils » Ecrire sur des Bitmaps RGSS depuis une dll en C
Pages: 1 [2]
« sujet précédent | | sujet suivant »
Imprimer
Auteur Fil de discussion: Ecrire sur des Bitmaps RGSS depuis une dll en C  (Lu 979 fois)
berka
Prolétaire
*
Hors ligne Hors ligne

Messages: 6



Voir le profil
Re : Ecrire sur des Bitmaps RGSS depuis une dll en C
« Répondre #15 le: Aot 28, 2010, 20:18:21 »

J'ai fait quelques test rapides. Et... ça ne fonctionne pas.
Du moins pas encore.

avec le programme suivant:
Code:
//-------------------------------------------------
//   Xrgss par berka       28-10-2010
//-------------------------------------------------
#include "ruby.h"
#define export extern "C" __declspec (dllexport)

static VALUE cXRgss;

static VALUE rb_xrgss_init(VALUE self){
    return(self);
}

static void init_xrgss(void){
  typedef VALUE(*rubyfunc)(...);
  cXRgss=rb_define_class("XRgss",rb_cObject);
  rb_define_method(cXRgss,"initialize",(rubyfunc)rb_xrgss_init,0);
}

export void xrgss_init(void){
    ruby_init();
    ruby_init_loadpath();

    init_xrgss();
    // si décommenté: rgss ferme sans message d'erreur
    //ruby_run();
}
et l'appel:
Code:
begin
  p Win32API.new("xrgss.dll","xrgss_init","","").call
  p XRgss.new
rescue
  p $!
end
Rgss se coupe lors de l'appel Winapi lorsque la fonction c de ruby ruby_run(); s'exécute.
Apparemment les deux interpreteurs (ruby c et rgss) ne font pas bon ménage.
Mais ça passera !

Bonne soirée,

Berka
Journalisée

.: Je code donc je suis :.
RPG-Man
Rubyste Fou Furieux
Factorien
Machiniste
*
Hors ligne Hors ligne

Messages: 320


Voir le profil
Re : Ecrire sur des Bitmaps RGSS depuis une dll en C
« Répondre #16 le: Aot 28, 2010, 20:36:27 »

Tu reçois un message d'erreur ou pas ?
Journalisée

L'Usine en Folie arrive bientôt sur vos moniteurs...
berka
Prolétaire
*
Hors ligne Hors ligne

Messages: 6



Voir le profil
Re : Ecrire sur des Bitmaps RGSS depuis une dll en C
« Répondre #17 le: Aot 28, 2010, 21:16:45 »

Nan aucun.
J'ai eu le temps de tester un peu mieux. Si tu veux tester, voilà la dll.
Appel:
Code:
Win32API.new("xrgss.dll","xrgss_init","","").call
Je pense que c'est un probleme de conflit entre les deux interpréteurs. La fonction ruby_script(const char * nom) sert à identifier un interpréteur en lui donnant un simple nom. Si on trouve celui de rgss, peut etre que le schmilblick avancera un peu.
Quand j'aurai plus de temps, je tenterai des tests plus approfondis avec deux interpréteurs situés dans deux exe différents.

Edit:
vooilà, c'est réparé:
xrgss.dll
« Dernière édition: Aot 28, 2010, 21:26:24 par berka » Journalisée

.: Je code donc je suis :.
RPG-Man
Rubyste Fou Furieux
Factorien
Machiniste
*
Hors ligne Hors ligne

Messages: 320


Voir le profil
Re : Ecrire sur des Bitmaps RGSS depuis une dll en C
« Répondre #18 le: Aot 28, 2010, 21:20:04 »

Ok merci berka.
(y'a une erreur dans le lien, même en virant l'erreur dans l'adresse oO).

Je testerai à fond une fois que j'aurai terminé ce que je dois faire (la démo par exemple :p).
Journalisée

L'Usine en Folie arrive bientôt sur vos moniteurs...
berka
Prolétaire
*
Hors ligne Hors ligne

Messages: 6



Voir le profil
Re : Ecrire sur des Bitmaps RGSS depuis une dll en C
« Répondre #19 le: Septembre 02, 2010, 20:56:16 »

Voilà, j'ai pu faire de nouveaux tests. Sans grand succès. Le jeu ne plante plus, l'objet Ruby est bien créé en C, mais il n'est pas accessible depuis RM après appel de la DLL.

Code:
//-------------------------------------------------
//   Xrgss par berka       02-09-2010
//-------------------------------------------------`

#include "ruby.h"
#define export extern "C" __declspec (dllexport)

DWORD  dwThreadId;
HANDLE hThread;

static VALUE cXRgss;

static VALUE rb_xrgss_init(VALUE self){
    // XRgss#new
    return(self);
}

static void init_xrgss(){
  // binding ruby: création de l'objet classe XRgss
  typedef VALUE(*rubyfunc)(...);
  cXRgss=rb_define_class("XRgss",rb_cObject);
  rb_define_method(cXRgss,"initialize",(rubyfunc)rb_xrgss_init,0);
}

export long xrgss_init(){
    // initialisation de ruby embarqué
    ruby_init();
    ruby_init_loadpath();
    init_xrgss();
    // évaluation et appel de la classe XRgss.
    VALUE l = rb_eval_string("XRgss.new.__id__");
    // conversion de l'ID de l'objet rb en long
    long c = NUM2INT(l);
    // si j'utilise ruby_run, RM se ferme sans message d'erreur: rgss fermé ?
    ruby_finalize();
    // retour vers RM de l'ID => l'objet XRgss est créé mais pas accessible
    return c;
}
« Dernière édition: Septembre 02, 2010, 21:16:27 par berka » Journalisée

.: Je code donc je suis :.
RPG-Man
Rubyste Fou Furieux
Factorien
Machiniste
*
Hors ligne Hors ligne

Messages: 320


Voir le profil
Re : Ecrire sur des Bitmaps RGSS depuis une dll en C
« Répondre #20 le: Septembre 03, 2010, 12:08:08 »

Bah, si ta fonction ne retourne que l'id de l'objet, ruby pourra rien récupérer (je pense du moins ^^).

Est-ce que la classe elle même est accessible depuis ruby ? (si defined?(XRgss) == "class")
As-tu essayé de rendre l'instance disponible, en créant une instance affectée à une variable globale par exemple ?

Une fois la démo de l'UeF terminée, j'essaierai de me consacrer à des tests là dessus !
Journalisée

L'Usine en Folie arrive bientôt sur vos moniteurs...
berka
Prolétaire
*
Hors ligne Hors ligne

Messages: 6



Voir le profil
Re : Ecrire sur des Bitmaps RGSS depuis une dll en C
« Répondre #21 le: Septembre 03, 2010, 16:23:21 »

Le retour de l'Id, c'est juste pour vérifier que la fonction s'est bien exécutée, rien d'autre.
Parce que l'objet, lui est censé être créé en C. Il devrait donc être accessible depuis Rgss. Mais, ça, c'est dans l'hypothèse où les deux interpréteurs cohabitent et se reconnaissent. La classe est complètement accessible en ruby (celui de la dll), mais pas sous RM. J'en déduis donc que ces deux interpréteurs ne s'entendent pas.
La prochaine étape sera de plonger dans la ram pour récupérer l'objet via son id. Mais cela suppose de nouvelles Apis... Le probleme reste donc entier. On n'arrivera jamais à se débarrasser de ces apis ^^
Journalisée

.: Je code donc je suis :.
RPG-Man
Rubyste Fou Furieux
Factorien
Machiniste
*
Hors ligne Hors ligne

Messages: 320


Voir le profil
Re : Ecrire sur des Bitmaps RGSS depuis une dll en C
« Répondre #22 le: Septembre 04, 2010, 10:20:15 »

Rah la galère...
Peut être est-ce la version de ruby qui est avec RM qui ne va pas...
Si tu as la 1.9 c'est sur que ça risque pas de marcher ^^"
Journalisée

L'Usine en Folie arrive bientôt sur vos moniteurs...
King Kadelfek
Game Master Humoriste
Savant
*
Hors ligne Hors ligne

Messages: 1422


Hyper Vitesse !!!


Voir le profil WWW Courriel
Re : Ecrire sur des Bitmaps RGSS depuis une dll en C
« Répondre #23 le: Septembre 04, 2010, 22:03:01 »

J'avais fait une démo sur l'ondulation précalculée entièrement paramétrable.
Je peux la retrouver. ;)

Sinon, GlitchFinder a fait de chouettes trucs en C pour RM :
http://www.hbgames.org/forums/viewtopic.php?f=11&t=70805
Journalisée

Et vive la saga mp3 La Taverne de Kadelfek !
RPG-Man
Rubyste Fou Furieux
Factorien
Machiniste
*
Hors ligne Hors ligne

Messages: 320


Voir le profil
Re : Ecrire sur des Bitmaps RGSS depuis une dll en C
« Répondre #24 le: Septembre 05, 2010, 18:58:42 »

Ouais, King est de retour !  xd

Pour l'ondulation précalculée, avec l'UeF on fera sans parce que :
- c'est super rapide en C  xd
- et que celle de l'eau (qui est spéciale) peut générer des... milliers d'images différentes...

Untra d'après ce que je vois, a fait des trucs assez simples sur les bitmaps et quelques trucs qui semblent un peu plus complexes, c'est assez simpatoche, je me demande comment il a fait pour le contraste :D
Journalisée

L'Usine en Folie arrive bientôt sur vos moniteurs...
Fabien
Architecte
Savant
*
Hors ligne Hors ligne

Messages: 1372


Scribouillard malade du virus RpgMaking

fabien_35@hotmail.com
Voir le profil Courriel
Re : Ecrire sur des Bitmaps RGSS depuis une dll en C
« Répondre #25 le: Septembre 16, 2010, 10:33:59 »

Si seulement j'avais eu ça il y a 2 ans... bien joué.
Journalisée

RPG-Man
Rubyste Fou Furieux
Factorien
Machiniste
*
Hors ligne Hors ligne

Messages: 320


Voir le profil
Re : Ecrire sur des Bitmaps RGSS depuis une dll en C
« Répondre #26 le: Mars 17, 2011, 18:04:05 »

Si ça peut faire avancer le truc la version de ruby dans RGSS c'est 1.8.1... vive l'ancêtre xD
Journalisée

L'Usine en Folie arrive bientôt sur vos moniteurs...
nuki
Sieur =D
Gardien
Forgeron
*
Hors ligne Hors ligne

Messages: 40


xavier-vdw@hotmail.fr
Voir le profil Courriel
Re : Ecrire sur des Bitmaps RGSS depuis une dll en C
« Répondre #27 le: Mars 19, 2011, 03:45:02 »

Il faudrait que tu bosses avec MoloK, Scriptopate (bolognaise), il bosse fort sur des addons en C.
Journalisée
Pages: 1 [2]
Imprimer
« sujet précédent | | sujet suivant »
Aller à:  


Powered by SMF 1.1.15 | SMF © 2006-2009, Simple Machines

EN Theme by Nati

Page générée en 0.072 secondes avec 25 requêtes.
Chargement...
SimplePortal 2.3.2 © 2008-2010, SimplePortal