begin process at 2008 08 21 21:06:15
1 229 636 membres
448 nouveaux aujourd'hui
14 264 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FENÊTRE DE DEBUG GTK+ POUR OPENGL


Information sur la source

Description

Permet à l'utilisateur d'ouvrir rapidement et facilement une fenêtre GTK+ pour afficher des bool, float ou int en temps réel, et les modifier.
Exemple d'utilisation:
   GTKwin.Init();
    GTKwin.Attach(my_int,"var1 = ");
    GTKwin.Attach(my_float,"angle = ",0,M_PI);
    GTKwin.Run();

Il est aussi possible de logger sur une console s'ouvrant dans un 2eme onglet, je vous laisse tester.
Il faut les runtimes GTK+ dispos sur http://gimp-win.sourceforge.net/stable.html pour windows, sur apt-get sinon ^^

Source

  • Il est possible de désactiver complètement la fenêtre ( par exemple pour la release ) en définissant la macro RELEASE, ou juste un onglet spécifique en commentant GTKWIN_TRACE ou GTKWIN_LOG.
  • Amplement commenté, il faut dire que ce n'est pas évident.
  • Débutant car 1 c'est ma 1ère source GTK+ et 2 rien de transcendant non plus faut pas exagérer.
  • Juste très pratique.
Il est possible de désactiver complètement la fenêtre ( par exemple pour la release ) en définissant la macro RELEASE, ou juste un onglet spécifique en commentant GTKWIN_TRACE ou GTKWIN_LOG.

Amplement commenté, il faut dire que ce n'est pas évident.
Débutant car 1 c'est ma 1ère source GTK+ et 2 rien de transcendant non plus faut pas exagérer.
Juste très pratique.

Conclusion

Portable.
Utilise GLFW pour le "rendu" ainsi que pour quelques autres trucs, GTKWIN_NO_GLFW devrait permettre de s'en passer complètement mais c'est pas encore au point.

ATTENTION
la fenêtre openGL est VOLONTAIREMENT minable. le but était de montrer l'utilisation de ma classe, rien d'autre.
les différents bools activent les composantes RVB.
la composante bleue varie au cours du temps selon un sin(), on ne peut donc pas la modifier.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de Arnaud16022 le 24/12/2006 17:38:06

    Oh juste une remarque en passant : J'ai fait cette source pour pouvoir modifier rapidement des petits trucs chiants genre la couleur de particules, etc, sans avoir à compiler 20 fois pour trouver la bonne teinte ou la bonne taille ou une taille de police qui va bien, etc.
    C'est uniquement à ça que ça sert ;)

    Joyeuses fêtes.

  • signaler à un administrateur
    Commentaire de Kirua le 24/12/2006 22:53:34

    Tu devrais mettre l'accent sur le côté ultra pratique de ta classe. Je vais le faire pour toi:

    vous déclarez l'objet une bonne fois pour toutes, et puis partout dans votre programme très compliqué et bourrant à compiler / débugger, vous enregistrez les variables sensibles que vous aimeriez suivre en temps réel, et pouvoir modifier aisément. En une ligne, elles apparaitront de façon ergonomique dans la petite fenêtre GTK+. Et quand le debug est terminé et que vous voulez distribuer: pops, on désactive. MAIS: faut pas commenter partout dans le code. Puisque 2 jours après la release, on vous signale un bug: pas de problème, on réactive, et on recommence ^^.

    Il y a vraiment du potentiel pour ce genre de choses :).

  • signaler à un administrateur
    Commentaire de Funto66 le 31/12/2006 01:18:57

    Yep salut Arnaud (et Kirua au passage ^^), je viens de parcourir ta source :)

    Je vais faire ce que je n'ai pas fait depuis si longtemps sur CppFrance : une critique constructive :D
    Donc d'abord les points positifs : très très bonne source en fait, c'est vrai que c'est très pratique et propre, simple d'utilisation, utile, bien commentée et "personnalisable" avec quelques #defines : j'aime beaucoup :)

    Bon maintenant les points négatifs :p :
    -l'indentation où tu mélanges des espaces et des tabulations...'fin ça c'est personnel hein mais j'aime bien quand c'est homogène...bon ok on s'en fout :p
    -#define CGTKwin dumpGTKwin ou #define CGTKwin _CGTKwin : pour quoi faire?
    Pourquoi ne pas faire plus simplement :

    #ifndef GTKWIN_DISABLE
    class CGTKwin
    {
    void Init(); // l'implémentation sera dans le .cpp
    // blabla...
    };
    #else
    class CGTKwin
    {
    void Init(){} // implémentation vide
    // blabla...
    };
    #endif
    -pourquoi get_win() et par GetWin() ? Ta façon de nommer les fonctions n'est pas homogène...
    -les variagles globales qui sont dans le namespace NDebug : soit les mettre en static au sens C du terme, c'est à dire non visibles depuis un autre fichier .cpp (ça ne coûte rien et c'est plus propre ^^), soit les mettre en private et static au sens C++ du terme dans la classe CGTKwin, ce qui est bcp + logique non??
    -on peut écrire sur la zone de texte GTK+, je pense qu'on doit pouvoir empêcher ça en 1 seule ligne de code...tu me diras, de toutes façons c'est juste pour du débuggage donc c'est pas important...
    -au démarrage de ton prog, le focus est donné à la fenêtre GTK+, alors que ce serait plus logique de le donner à la fenêtre GLFW. Détail aussi, et puis ça dépend surtout du programme que l'on débuggue plutôt que de CGTKwin : peut-on créer une fenêtre GTK+ sans qu'elle ait le focus?? (ou sinon faudrait que CGTKwin appelle une fonction GLFW qui donnerait le focus à la fenêtre GLFW : cette fonction existe-t-elle?)

    Bon et puis quelques fautes d'ortho/de frappe...(dsl ^^) :
    -appellés -> appelés (CGTKwin.cpp)
    -appeller -> appeler (CGTKwin.cpp)
    -Fenêtre désactivés -> Fenêtre désactivée (CGTKwin.h)
    -calbacks -> callbacks (CGTKwin.cpp)

    Voili voilou, ça faisait longtemps que je ne faisais pas ça :)

    A tous les programmeurs OpenGL : c'est vraiment utile, vous devriez vous en servir, et puis c'est un pote à moi qui l'a faite, elle est forcément bien cette source :p

  • signaler à un administrateur
    Commentaire de Arnaud16022 le 04/01/2007 12:43:53

    Alors, dans l'ordre:
    Pour les indentations (et les fautes d'ortho), j'ai dû coder ça entre minuit et 5h du mat, ceci explique cela.
    Pour les define, c'est simplement parce que ta méthode ne marche pas: n'oublie pas qu'il y a un .cpp derrière. avec ma méthode, un peu crade je l'avoue, toutes les fonctions sont inlinées en fonction(){}; -> tu n'as pas à virer tout le code lors de la release.
    Pour l'homogénéité -> ok je regarderai ça
    Pour le focus, je sais pas trop comment faire :/
    et c'est a peu près tout :)

  • signaler à un administrateur
    Commentaire de Funto66 le 04/01/2007 22:13:52

    ??
    Quel est le pb avec le .cpp?

    Tu mets tout le contenu du .cpp dans un #ifdef/#endif...

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS