Fenêtre de debug gtk+ pour opengl

Soyez le premier à donner votre avis sur cette source.

Vue 6 523 fois - Téléchargée 366 fois

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 / Exemple :


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.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
??
Quel est le pb avec le .cpp?

Tu mets tout le contenu du .cpp dans un #ifdef/#endif...
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
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 :)
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
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
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

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 :).
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
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.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.