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. #21
    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
    Je commence de plus en plus à croire que gtksdl n'est pas portable du tout -.-
    Bin maintenant si vu que je vous ai trouvé la bonne macro mais attention, le fait que ca compile ne veut pas forcément dire que ca fonctionne, ca compile simplement parce que la macro fait partie du header gdkwin32.h et qu'elle attent également que un argument

    De toute manière tu n'as pas le choix, il faut utiliser la macro de transtypage, c'est juste que ca marche pas comme c'était prévu c'est tout, le mieux est encore d'envoyer un mail à l'auteur pour avoir quelques renseignement car s'il la diffuse, c'est qu'elle est censé fonctionner
    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 !

  2. #22
    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
    Moai.. Au vu de toutes les fonctions contenues dans le fichier source, à mon avis faudrait une doc . Mais y en a même pas sur le site officiel !

  3. #23
    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
    Moai.. Au vu de toutes les fonctions contenues dans le fichier source, à mon avis faudrait une doc . Mais y en a même pas sur le site officiel !
    Nullement besoin de doc, la plupart des fonctions sont des fonctions privées, les seules que tu dois utiliser sont celle contenues dans le fichier d'entête (ainsi que les macros) !

    Moi pour le moment tout ce que je peut dire c'est que ca plante après le
    de là je suis en train de regarder pourquoi ca plante dans l'étape suivante, si je trouve pas je demanderais l'auteur c'est tout !
    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 !

  4. #24
    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
    Bon mauvaise nouvelle, j'ai essayé à plusieures reprises de contacter l'auteur du widget mais sans réponse et son adresse mail fournie sur son site n'est plus valide ... faut croire qu'il à abandonné ce projet, déjà rien qu'a voir la dernière date de mise à jour ca fait peur (29 mai 2001) .... à suivre
    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 !

  5. #25
    Invité
    Invité(e)
    Par défaut
    Oui dans ce cas c'est plutôt mal parti

  6. #26
    Invité
    Invité(e)
    Par défaut
    J'ai trouvé un lien qui peut peut-être servir, mais je n'ai pas bien compris à quoi ça servait Mais je crois que ça a un rapport avec Gtksdl

    C'est ici : http://www.alobbs.com/slideshow/doc/files.html

  7. #27
    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
    Apparement il s'agit d'une doc Doxygen d'un programme utilisant ce widget.
    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 !

  8. #28
    Membre averti
    Étudiant
    Inscrit en
    Août 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 11
    Par défaut
    Quelqu'un sait quel paquet il faut installer pour avoir gnome.h et pouvoir compiler le programme exemple sous linux ?

  9. #29
    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 Cube*
    Quelqu'un sait quel paquet il faut installer pour avoir gnome.h et pouvoir compiler le programme exemple sous linux ?
    Je ne me souviens plus trop du nom mais regarde du côté de libgnome-dev
    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 !

  10. #30
    Membre éclairé Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Par défaut
    Ca fais un moment que je suis sur la SDL et je commence avec GTK.

    Quand j'ai vu ce post, je me suis dit hourra !

    Mais quand j'ai voulu essayer, j'ai des erreurs de linker (sous devcpp).

    J'ai pourtant bien ajouté les lib SDL et GTK

    Quelqu'un aurais une solution ou un projet de base par hasard? merci

  11. #31
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 8
    Par défaut
    Mbon pareil j'ai quasiment terminé un projet sous sdl mais il m'est impossible de l'intégrer dans une gui gtk, j'en arrive comme vous à un plantage de la macro GTK_SDL() !

    Donc je me permets un petit up pour savoir si il y a du nouveau du coté de gtksdl (apparemment non) ou si une autre librairie existe ou si vous avez résolu le problème depuis.

    Sinon je vais essayer de la faire fonctionner en farfouillant dedans, dois bien y avoir moyen quand même

  12. #32
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 8
    Par défaut
    Citation Envoyé par poussinphp
    Mais quand j'ai voulu essayer, j'ai des erreurs de linker (sous devcpp).

    Quelqu'un aurais une solution ou un projet de base par hasard? merci
    Je te donne le contenu de mon editeur de liens (j'ai installé GTK en gros donc t'auras peut etre pas besoin de tout mettre)

    -lglib-2.0
    -lpangocairo-1.0
    -lpangowin32-1.0
    -latk-1.0
    -lgdk_pixbuf-2.0
    -lgdk-win32-2.0
    -lpango-1.0
    -lgmodule-2.0
    -lgobject-2.0
    -lgthread-2.0
    -lgtk-win32-2.0
    -lcairo
    -lmingw32
    -lSDLmain
    -lSDL
    -lSDL_Image
    -lSDL_TTF

    Sans oublier cette ligne dans le textarea juste à gauche intitulé Compilateur C++ (je sais pas à quoi ca sert mais je te le donne au cas ou)
    -mms-bitfields

    avec ça normalement le linker devrait plus raler (fin chez moi ça passe)

  13. #33
    Membre éclairé Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Par défaut
    J'ai bien tout rajouté. Si je met rien de la SDL ça compile et ça fonctionne mais dès que je fais quoi que ce soit qui ai un rapport avec sdl, j'ai un message d'erreur de code block....

    pourtant ça devrais fonctionner, non?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        GtkWidget *P_Sdl = NULL;
        P_Sdl = gtk_sdl_new(100,100,32,SDL_SWSURFACE | SDL_DOUBLEBUF);
        gtk_box_pack_start(GTK_BOX(P_Boite),P_Sdl,TRUE,TRUE,0);

  14. #34
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Par défaut
    Salut tout le monde,
    j'ai été confronté au même problèmes que vous et ai bidouiller un peut le widget afin de le faire fonctionner,
    bien sur c'est un peu barbare mais bon ça donne de quoi réfléchir je pense.
    Ce que j'ai modifier c'est la fonction gtk_sdl_new en rajoutant un argument à cette fonction, cet argument étant
    un pointeur vers SDL_Surface. Ainsi on a accés directement à la surface de ce widget via le pointeur.
    On peut donc faire tout ce qu'on veut sur cette surface (le plus propre étant de travailler sur une autre et de
    bliter après).Après avoir fait ce blit il est aussi nécessaire d'utiliser la fonction d'update créee par l'auteur
    du widget: gtk_sdl_display_update (GTK_SDL(Votre sdl_widget));

    En gros:
    GtkWidget * pSdl;
    SDL_Surface * screen;

    pSdl = gtk_sdl_new (200, 100, 32, SDL_SWSURFACE,screen);
    /*
    votre code
    */
    gtk_sdl_display_update (GTK_SDL(pSdl));


    Tout ce que je peux vous affirmer c'est que cela marche chez moi mais je n'ai pas fait une multitude de test.
    En éspérant que ça puisse vous aidez. Je joint la source modifiée, ainsi qu'un programme test(nécessite les dll sdl.dll et sdl_ttf.dll, ainsi que l'installation préalable de gtk)

    Exemple :
    Fichiers attachés Fichiers attachés

  15. #35
    Invité
    Invité(e)
    Par défaut
    Waooow joli travail !!

    Par hasard, tu ne pourrais pas nous montrer le code de ton programme ? Parce que les seuls codes que je trouve sont destinés à Linux... Et je ne sais toujours pas par quoi remplacer le <gnome.h>, et tout le reste...

  16. #36
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Par défaut
    Voici le main du programme, c'est programmé vite fait donc t'attend pas à quelque chose de très propre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    #include <gtk/gtk.h>
    #include <stdlib.h>
    #include <SDL.h>
    #include "gtksdl.h"
    #include <SDL_ttf.h>
     
    GtkWidget *pSdl;
    GtkWidget *pWindow;
    SDL_Surface * screen;
     
    void initSDL(void);
    void Clicked(GtkWidget*,gpointer);
     
     
    int main(int argc, char **argv)
    {
        initSDL();
        gtk_init(&argc, &argv);
     
        GtkWidget * pButton = gtk_button_new_with_label("test");
        GtkWidget * pVbox = gtk_vbox_new(TRUE,0);
     
        pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        pSdl = gtk_sdl_new (200, 100, 32, SDL_SWSURFACE,screen);
     
        gtk_box_pack_start(GTK_BOX(pVbox),pSdl,TRUE,TRUE,0);
        gtk_box_pack_start(GTK_BOX(pVbox),pButton,TRUE,TRUE,0);
        gtk_container_add(GTK_CONTAINER(pWindow),pVbox);
     
          g_signal_connect(G_OBJECT(pButton),"clicked",G_CALLBACK(Clicked),NULL);
       g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
     
    	gtk_widget_show_all(pWindow);
     
    	gtk_main();
     
    	return EXIT_SUCCESS;
    }
     
    void Clicked(GtkWidget * pWindow,gpointer data)
    {
         SDL_Surface * double_buffer = SDL_SetVideoMode(200, 100, 32, SDL_SWSURFACE);
         SDL_Surface * Phrase = NULL;
         SDL_Color TextColor;
         TTF_Font * Police;
         int i;
     
         TextColor.r = 255;
         TextColor.g = 0;
         TextColor.b = 0;
         Police = TTF_OpenFont("comic.ttf",50);
         Phrase = TTF_RenderText_Blended(Police,"bonjour",TextColor);
     
         for(i=0;i<0x0000FF;i+=0x000002)
         {
     
         SDL_FillRect( double_buffer, NULL, i);
         SDL_BlitSurface(Phrase,NULL,double_buffer,NULL);
         SDL_BlitSurface(double_buffer,NULL,screen,NULL);
     
         gtk_sdl_display_update (GTK_SDL(pSdl));
         }
     
         SDL_FreeSurface(double_buffer);
         SDL_FreeSurface(Phrase);
     
     
     
    }
     
    void initSDL(void)
    {
       if(TTF_Init()== -1 )
    {
        fprintf(stderr, "Impossible d'initialiser SDL_ttf : %s", TTF_GetError());
        exit(EXIT_FAILURE);
    }
    if (SDL_Init(SDL_INIT_VIDEO) < 0) {
        fprintf(stderr, "Erreur à l'initialisation de la SDL : %s\n", SDL_GetError());
        exit(EXIT_FAILURE);
     
      }
    }
    Mon répertoire SDL n'est pas à l'endroit d'origine donc il faut peut être remplacer #include <SDL.h> par #include <SDL/SDL.h>.
    Oublis tout ce qui est gnome, comme tu l'as dit c'est destiné à linux. Tout ce que tu doit inclure est dans le zip du post précédent.

  17. #37
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup ! Ca faisait tellement longtemps que je rêvais de compiler cette *{@+_^\{°] d'application GTK + SDL Bravo

  18. #38
    Invité de passage
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Par défaut
    J'ai ce résultat après la compilation.



    J'ai utilisé tous les paramètres que Sahara a dits.
    De plus, j'ai besoin de mettre le WinMain pour que j'ai fonctionné..
    Qu'est-ce qui peut être ce que je fais mal ?

    Un pardon par mon français de traducteur XD

    EDIT: résolu.. une erronée installation de dev-cpp

  19. #39
    Invité de passage
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1
    Par défaut
    Salut tout le monde je déterre le sujet!
    Bon bah déjà merci j'ai réussi à intégré ma fenêtre SDL dans mon appli GTK grâce à vous, ça fonctionne je dessine en opengl à l'intérieur niquel.

    Cependant je n'arrive pas à géré les évenements SDL et j'aimerai savoir si certains d'entre vous ont réussis et si il y a une étape précise à faire ou pas.
    Quand mon programme atteint SDL_WaitEvent(&event) il ne répond plus :'(

    Je vais continuer d'essayer de mon coté!

    Voila merci !

  20. #40
    Membre confirmé

    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 72
    Par défaut
    essaie avec SDL_Pollevent();

    sinon, p-e que le widget sdl de grifos a des signaux bien précis?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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, 17h42
  2. Réponses: 26
    Dernier message: 30/07/2007, 13h09
  3. SDL : screen SDL dans fenêtre
    Par poussinphp dans le forum SDL
    Réponses: 1
    Dernier message: 28/10/2006, 12h31
  4. SDL dans les classes
    Par thekaz dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 13/10/2006, 22h04
  5. [SDL] Integration fenetre SDL dans fenetre C# ?
    Par salammbo dans le forum OpenGL
    Réponses: 3
    Dernier message: 07/02/2005, 10h47

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