gtk & allegro
-
hi,
hab da mal wieder ne frage:
gibt es ne möglichkeit in ner gtk anwendung allegro zu verwenden? (also in der gui verankert....z.b. 'n menubalken mit ner anzeige drunter in der man allegro verwenden kann)
kennt da jemand ne lösung?
thx
mfg
Desire
-
Es sollte gehen. Ich kenne mich zwar mir Linux net so aus aber unter Windows kann man auch selber ein Fenster erstellen und Allegro sagen das er das verwednen soll das müsste mit Linux auch so klappen du mussst nur das Fenster vorher so mit GTK selber erstellen.
-
und wie kann ich allegro sagen, dass er das verwenden soll?
und was muss dann in dem fenster drinn sein=?
leer oder was?
thx
mfg
Desire
-
weiß keiner?
-
ich habe vor zwei jahren mal damit rumgespielt... hier eine verbindungsmöglichkeit, vielleicht hilfts dir weiter..
benutz eine musik deiner wahl
achtung: da fehlt noch viel am abmelden
#include <allegro.h> #include <winalleg.h> #include <gtk\gtk.h> #include <gdk\gdk.h> #include <gdk\win32\gdkwin32.h> #include <glib.h> #define SAMPLEFILE "Cyeah.wav" static SAMPLE* the_sample=NULL; gint my_done(GtkWidget widget, GdkEvent event, gpointer date) { gtk_main_quit(); return TRUE; } gint my_clicked(GtkWidget widget, GdkEvent event, gpointer date) { g_print("yep, clicked\n"); #ifndef NO_SOUND play_sample(the_sample, 255, 128, 1000, FALSE); #endif return TRUE; } int main(int argc, char *argv[]) { GtkWidget *mygtkwin; GtkWidget *mypanedwin; GtkWidget *mylabel1; GtkWidget *mybutton; gtk_init(&argc, &argv); mygtkwin = gtk_window_new(GTK_WINDOW_TOPLEVEL); mypanedwin = gtk_hpaned_new(); mylabel1=gtk_label_new("hier ein kleiner test\nin dem ich versuche\nso'n paar elementare widgets auszuprobieren\nist ein schiebeteil\nin der mitte zu fassen\n eigentlich sollte ja ein bitmap rein\nhabe es einfach nicht geschafft\n er erkennt mir die bitmaps einfach nicht an!!\nalso die allegro-bitmaps wollen nicht..."); gtk_widget_realize(mygtkwin); //unoetig?? wofür ist das?? geht auch ohne....oder doch nicht??? win_set_window(GDK_WINDOW_XWINDOW(mygtkwin->window)); gtk_window_set_title(GTK_WINDOW(mygtkwin), "elises neuer versuch, der noch nicht mit bitmaps klappt"); //----allegro allegro_init(); #ifndef NO_SOUND if (install_sound(digi_card, MIDI_NONE, NULL) != 0) { allegro_message("Error initialising sound system\n%s\n", allegro_error); return 1; } the_sample = load_sample(SAMPLEFILE); if (!the_sample) { allegro_message("Error reading WAV file '%s'\n", SAMPLEFILE); return 1; } #endif gtk_container_add(GTK_CONTAINER(mygtkwin), mypanedwin); gtk_signal_connect(GTK_OBJECT(mygtkwin), "delete_event", GTK_SIGNAL_FUNC(my_done), NULL); mybutton = gtk_button_new_with_label("click!"); gtk_signal_connect(GTK_OBJECT(mybutton), "clicked", GTK_SIGNAL_FUNC(my_clicked), NULL); //---fuellen gtk_paned_add1(GTK_PANED(mypanedwin), mylabel1); gtk_paned_add2(GTK_PANED(mypanedwin), mybutton); gtk_widget_show(mybutton); gtk_widget_show(mypanedwin); gtk_widget_show_all(mygtkwin); gtk_main(); g_print("done!\n"); #ifndef NO_SOUND stop_sample(the_sample); destroy_sample(the_sample); remove_sound(); #endif //----allegro allegro_exit(); return 0; }
-
oki, danke. werd ich mal ausprobieren.
mfg
Desire
-
mist, ich seh grad, das ganze is windows-spezifisch...naja...trotzdem danke
an euch beide!
thx
mfg
Desire
-
müßte aber unter linux genauso laufen... beide apis gibts ja auch dort..
klar, die includes ändern..
ps: wennste weitere beispiele brauchst, hab ich noch ein paar mit alleggl (allegro opengl) und gtk..
such ich dann..
[ Dieser Beitrag wurde am 26.06.2003 um 19:44 Uhr von elise editiert. ]
-
ne, das is nich das problem, sondern die funktion
win_set_window();
is windows spezifisch...hab ich aus der allegro api doku entnommen...
trotzdem danke
Desireps: wenn die beispiele mit alleggl die nicht benutzen wäre ich dir dankbar wenn du mir die auch noch geben könntest. ich werd mir das beispiel trotzdem mal aufheben, da ich, sobal ich mehr speicherplatz als 6 gb hab, mir auch noch windows draufmach...multisystem rult *g*
-
die win_set_window brauchst du auch nicht
nimm sie einfach raus, läuft auch ohne...
-
hm...
also:
ich hab das ganze jetzt mal unverändert gelassen (bis auf die main() und die header)
ich hab die win_set_window() auskommentiert und hab bei den headerfiles stehen:
#include <allegro.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <glib.h>
dann hab ich das ganze kompiliert (mit dem befehl
gcc -o galleg galleg.cpp `pkg-config --libs --cflags gtk+` `allegro-config --libs --cflags`)
da bekomme ich folgende fehler:
/tmp/cc9fBzVn.o(.eh_frame+0x11): undefined reference to\_\_gxx\_personality\_v0' /usr/local/lib/liballeg-4.0.3.so: undefined reference to
_mangled_main_address'collect2: ld returned 1 exit status
um das "undefined reference to\_mangled\_main\_address'" wegzubekommen hab ich noch 'n END\_OFMAIN() hinten drangehängt und bekomm jetzt nur noch den fehler: /tmp/ccVkHuZZ.o(.eh\_frame+0x11): undefined reference to
__gxx_personality_v0'
aus dem werd ich allerdings nit schlau...
kannst du mir da helfen?
danke
Desireps: ich dachte das ich die win_set_window() brauch, da in der doku steht, das man mit ihr angeben kann, dass allegro 'n anderes fenster benutzen soll und kein eigenes erstellen soll...
-
hat anscheinend nix mit allegro oder so zu tun...
google mal nach "undefined reference to `__gxx_personality_v0'", da kommt eine menge, ich schau mal durch, ob was drin ist.. wenn nicht, mal im linuxforum fragen..
-
nur eine doofe idee..
versuch mal g++ (gpp) statt gcc..
-
danke dir.
hm...
"> reassign 186788 libsigc++-1.2-5c102
Bug#186788: g++-3.2: undefined reference to\_\_gxx\_personality_v0' on parisc Bug reassigned from package \
g++-3.2' to `libsigc++-1.2-5c102'.> severity 186788 serious
Bug#186788: g++-3.2: undefined reference to\_\_gxx\_personality_v0' on parisc Severity set to
serious'.> merge 186788 185395
Bug#185395: libsigc++-1.2-5c102: Can't link against libsigc-1.2.so
Bug#186788: g++-3.2: undefined reference to `__gxx_personality_v0' on parisc
Merged 185395 186788."
is anscheinend 'n bug in der verbindung gcc 3.2 + libsigc++1.2....hab ich das richtig gelesen? *g*
-
http://www.tutorials.de/tutorials81648.html
der link sieht ganz gut aus
-
ja, scheints zu sein..hab das ganze mal mit dem gleichen befehl nur anstatt gcc g++ kompiliert..
ohne fehler kompiliert.
jetzt brauch ich nur noch ne wave datei *lol*
danke dir vielmals!
mfg
Desire
-
und nu baust du ein fenster rein und postest es mir
-
wie jetzt.
quellcode posten oda wat?
~nix kapier~ps: jetzt funktionierts
-
na mal gtk und allgro oder allegl ordentlich verbinden und weiter dran bleiben..
ich habe es zeitmäßig damals nur zu peripheren lösungen gebrachtviel spaß
-
achso...werd mal sehen was ich tun kann...
danke nochmals!
mfg
Desire