IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

SDL dans GTK+ [Fait]


Sujet :

GTK+ avec C & C++

  1. #1
    Invité
    Invité(e)
    Par défaut SDL dans GTK+
    Bonjour,

    J'ai une question toute bête : comment faire pour inclure de la SDL dans un environnement GTK+ ? Je ne sais pas si j'utilise le bon vocabulaire là En fait, je voudrais faire une application GTK+ mais dont un widget serait en quelque sorte une autre application SDL. Vous me suivez ?

    Merci.

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par jo_le_coco
    J'ai une question toute bête : comment faire pour inclure de la SDL dans un environnement GTK+ ? Je ne sais pas si j'utilise le bon vocabulaire là En fait, je voudrais faire une application GTK+ mais dont un widget serait en quelque sorte une autre application SDL. Vous me suivez ?
    On peux toujours s'amuser à faire un beau post-it si personne le lit
    Liens utiles GtkSDL

  3. #3
    Invité
    Invité(e)
    Par défaut
    Rooooh désolé

    Merci de la réponse (et du post-it)

    EDIT : en revanche, j'ai un problème : je suppose que les fichiers livrés sont pour Linux (j'ai Windows XP), car j'ai remarqué que deux include manquent : gdk/gdkx.h et gnome.h. J'ai remplacé "gtkx.h" par "gtkwin32.h", et maintenant ça semble fonctionner ; par contre, j'ai n'ai rien trouvé pour "gnome.h". Est-ce qu'il faut installer une bibliothèque tierce ?

    Merci encore.
    Dernière modification par Invité ; 29/08/2006 à 11h53.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Up :
    Citation Envoyé par jo_le_coco
    EDIT : en revanche, j'ai un problème : je suppose que les fichiers livrés sont pour Linux (j'ai Windows XP), car j'ai remarqué que deux include manquent : gdk/gdkx.h et gnome.h. J'ai remplacé "gtkx.h" par "gtkwin32.h", et maintenant ça semble fonctionner ; par contre, j'ai n'ai rien trouvé pour "gnome.h". Est-ce qu'il faut installer une bibliothèque tierce ?

    Merci encore.

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Concernant Gnome tu trouvera sans doute rien pour Windows étant donné que c'est le header pour les application Gnome donc uniquement Linux !

    Si c'est le programme exemple que tu veux tester il va falloir modifier le main !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 10
    Par défaut
    Bonjour, je reposte dans ce topic car cela me concerne directement.

    Tout comme Joe, j'ai été modifié gtksdl.h en remplaçant gtkx.h par gtkwin32.h, maintenant lorsque j'essaie de compiler j'ai une erreur:

    "linker error: undefined reference to Winmain@16" : /

  8. #8
    Invité
    Invité(e)
    Par défaut
    Oui, moi aussi

    Franck m'avait aidé à modifier le programme exemple, mais cette erreur du Winmain est restée sans solution (d'ailleurs, merci encore Franck )

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 10
    Par défaut
    Ah si j'ai trouvé. Il faut ajouter les DLL de la sdl et les linker ^^

  10. #10
    Invité
    Invité(e)
    Par défaut
    Ah ? Merci de l'astuce, je vais essayer


    EDIT : Youpiiiiiiiiie merveilleux formidable extraordinaire ça maaarche C'est bizarre, j'avais en fait mal lié les lib
    Merci d'être intervenu
    Dernière modification par Invité ; 03/09/2006 à 20h23.

  11. #11
    Invité de passage
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1
    Par défaut
    Bonsoir,

    il y a quelques temps, j'ai essayé comme vous d'intégrer SDL dans une application GTK, cependant j'ai rencontrer les mêmes problèmes que vous.

    Maintenant que vous semblez avoir résolu ces difficultés, j'aimerais savoir, avant de me relancer dans mon projet: un éditeur de map, comment avez vous (ou allez vous) faire pour récupérer les événements de la partie SDL et les utiliser ?

    Merci d'avance

    Amicalement Mercosuh

  12. #12
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Moi j'ai fait quelques tests de création de surface et de blit sur la surface SDL intégrée au widget GTK+ mais sans résultats, chaque opération directe sur cette surface se solde par une erreur de segmentation alors est-ce que cela viens du widget ...... si quelqu'un trouve pourquoi je suis preneur

    Pour ceux que ca interesse je joint les fichiers dont un main portable
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 10
    Par défaut
    Bien bien ça ma bien fait progresser ton main.. Mais j'ai un petit problème de linker:
    linker error: undefined reference to 'gtk_sdl_new'

  14. #14
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par gabi944
    Bien bien ça ma bien fait progresser ton main.. Mais j'ai un petit problème de linker:
    linker error: undefined reference to 'gtk_sdl_new'
    Bin faut rajouter le fichier gtksdl.c dans ton projet pour que le widget soit intégré dans le programme !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 10
    Par défaut
    Ah bah oui évidemment.

    Et donc, j'ai de nouveau une nouvelle erreur! joie ^^

    linker error: undefined reference to GDK_WINDOW_XWINDOW

    Donc après quelque recherches, c'est une macro qui est définie dans gdkx.h..Seulement comme moi je suis sous windows ( et que gdkx.h est 'pour' linux) bah je n'ai pas cette macro ...

    Donc soit je me débarasse des fonctions y faisant appel, soit je trouve une autre macro équivalante sous windows ( déjà, j'ai inclus gdkwin32.h à la place de gdkx.h)

    EDIT: Eh ben c'est pas jouable..retirer cette macro fait que je retire une fonction dont dépend une fonction, dont d'autre fonctions sont dépendantes etc ... -.-

    EDIT (bis): Sinon est-ce que vous pourriez me donner cette macro ?

  16. #16
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par gabi944
    EDIT (bis): Sinon est-ce que vous pourriez me donner cette macro ?
    Bin non ca ne servira à rien, s'il existe un header différents par système avec des macros différentes ... ce n'est pas pour faire joli !

    Après avoir un peu fouillé le header gtkwin32.h ... regarde pour changer la macro par celle-ci
    mais je ne te garanti pas que ca marchera
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 10
    Par défaut
    Cette macro semble la bonne, en tout cas maintenant ça compile ^^

    Bon alors à présent j'essaie de faire un simple SDL_FillRect sur la surface crée par gtk_sdl_new:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // widget d'affichage
    	app->sdlWin = gtk_sdl_new(320, 200, 32, SDL_HWSURFACE | SDL_DOUBLEBUF );
     
     
     
    	SDL_FillRect( GTK_SDL( app->sdlWin)->surface, NULL, 0);
    Et donc ça compile mais plante.. Joie de la programmation , quand tu nous tiens.

  18. #18
    Invité
    Invité(e)
    Par défaut
    Oui, moi c'est pareil, et je crois que le programme plante à cause de l'expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GTK_SDL( app->sdlWin)->surface
    En effet, supprime les fonctions utilisant cette syntaxe, et rien ne plantera. De plus si tu supprimes le "->surface" ça ne plante plus (mais évidemment ça ne marche pas ). En tout cas, c'est ce qui se passe chez moi.

    Visiblement, le problème se situe dans la macro de transtypage

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 10
    Par défaut
    Oui c'est bien cette macro qui fait tout planter... Je commence de plus en plus à croire que gtksdl n'est pas portable du tout -.-

    Et si je retire la macro GTK_SDL...Comment je fais pour utiliser des fonctions ayant trait à la sdl ????

    edit: j'ai essayé de compiler l'exemple de franck.h, et donc c'est confirmé: c'est la macro qui foire :p

  20. #20
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par gabi944
    Et si je retire la macro GTK_SDL...Comment je fais pour utiliser des fonctions ayant trait à la sdl ????
    Bah tu ne fais pas

    Il faudrait réécrire la macro, peut-être... ou bien réécrire le widget tout court ^^

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. integrer une fenetre sdl dans un environement gtk
    Par nikoul dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 10/01/2010, 16h42
  2. Réponses: 26
    Dernier message: 30/07/2007, 12h09
  3. SDL : screen SDL dans fenêtre
    Par poussinphp dans le forum SDL
    Réponses: 1
    Dernier message: 28/10/2006, 11h31
  4. SDL dans les classes
    Par thekaz dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 13/10/2006, 21h04
  5. [SDL] Integration fenetre SDL dans fenetre C# ?
    Par salammbo dans le forum OpenGL
    Réponses: 3
    Dernier message: 07/02/2005, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo