Bonjour,
j'aimerais faire un petit programme avec les bibliothèques GTK et Allegro en même temps.
Ce serait pour faire une fenêtre (=> GTK), y afficher une image à gauche (=> allegro) et des boutons à droite (=>GTK).

Je n'arrive pas à programmer avec les 2 en même temps, mon programme ne veut même pas afficher une image .bmp en fond d'écran.

Voici mon code pour l'instant:

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
 
#include <stdlib.h>
#include <gtk/gtk.h>
#define ALLEGRO_NO_MAGIC_MAIN
#include <allegro.h>
#define ERREUR(msg) {\
   set_gfx_mode(GFX_TEXT,0,0,0,0);\
   allegro_message("erreur ligne %d, fichier %s: %s\n",__LINE__, __FILE__,msg);\
   allegro_exit();\
   exit(EXIT_FAILURE);\
}
 
int main (int argc, char *argv[])
{
    int x,y;
    BITMAP* image;
    GtkWidget *win = NULL;
 
    if (allegro_init())
        ERREUR("Cannot initalize Allegro.\n");
    gtk_init (&argc, &argv);
 
    win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title (GTK_WINDOW (win), "Hello World");
    gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER);
 
    set_color_depth(24);
    if (set_gfx_mode(GFX_AUTODETECT_WINDOWED,800,600,0,0)!=0)
      ERREUR("initialisation mode graphique");
 
    image=load_bitmap("./image.bmp",NULL);
    if (!image)
        ERREUR("Cannot load image.\n");
 
    allegro_message("hello word allegro !");
 
    g_signal_connect (win, "destroy", gtk_main_quit, NULL);
    gtk_widget_show_all (win);
    gtk_main ();
 
    destroy_bitmap(image);
 
    return EXIT_SUCCESS;
}