Hi Tim, yes, you should definitely checkout Chickadee. There are some cool demos in the examples directory.
Best, Aleix On Mon, Nov 23, 2020, 5:55 PM Tim Meehan <btmee...@gmail.com> wrote: > Ok - I'm very new to Guile, and had run across "Sly" (game framework) by > dthomson? (My assumption, based on checking out a couple of links: > https://github.com/guildhall/guile-sly, > http://www.draketo.de/proj/py2guile/ > at bottom of page) ... > > I'm interested in learning how to do games (Guile is a hobby, games are > fun). > Based on the recent announcement of Chickadee 0.6.0, I'm assuming I should > check that out instead of Sly? > > On Fri, Nov 20, 2020 at 11:02 AM <guile-user-requ...@gnu.org> wrote: > > > Send guile-user mailing list submissions to > > guile-user@gnu.org > > > > To subscribe or unsubscribe via the World Wide Web, visit > > https://lists.gnu.org/mailman/listinfo/guile-user > > or, via email, send a message with subject or body 'help' to > > guile-user-requ...@gnu.org > > > > You can reach the person managing the list at > > guile-user-ow...@gnu.org > > > > When replying, please edit your Subject line so it is more specific > > than "Re: Contents of guile-user digest..." > > > > > > Today's Topics: > > > > 1. Chickadee 0.6.0 released (Thompson, David) > > 2. getting to know the FFI ... (Tim Meehan) > > > > > > ---------------------------------------------------------------------- > > > > Message: 1 > > Date: Thu, 19 Nov 2020 21:11:09 -0500 > > From: "Thompson, David" <dthomps...@worcester.edu> > > To: Guile User <guile-user@gnu.org> > > Subject: Chickadee 0.6.0 released > > Message-ID: > > <CAJ=RwfbC2UmafXr= > > trzabkhhz2ov+efemqopzdbfjfn68ty...@mail.gmail.com> > > Content-Type: text/plain; charset="UTF-8" > > > > Hey everyone, > > > > I just released Chickadee 0.6.0. Chickadee is a game programming > > library for Guile. It handles window management, > > keyboard/mouse/controller input, hardware-accelerated rendering, > > audio, scripting, and more. > > > > Most notably it now supports OpenGL 2 (rejoice, old thinkpad users!), > > can render TrueType/OpenType fonts, and has preliminary support for 2D > > vector graphics. > > > > See the link below for full release details and download links: > > https://dthompson.us/chickadee-060-released.html > > > > - Dave > > > > > > > > ------------------------------ > > > > Message: 2 > > Date: Thu, 19 Nov 2020 21:02:51 -0600 > > From: Tim Meehan <btmee...@gmail.com> > > To: guile-user@gnu.org > > Subject: getting to know the FFI ... > > Message-ID: > > <CACgrOxJZKxE4eL9keY5HBmqnT9yA22VOrq3Hn2RLd= > > bse2p...@mail.gmail.com> > > Content-Type: text/plain; charset="UTF-8" > > > > I figured that I would try and do something simple-ish to see how well I > > understood the FFI. I found this GTK tutorial, written in Chez Scheme: > > https://github.com/jhidding/lyonesse/blob/master/gtk-tutorial/window.scm > > I just tried to replace the Chez FFI calls with Guile FFI calls. > > > > I'm not sure how to tell GTK about a callback that is written in Guile. > > I'm not sure how to pass a string to GTK ... > > > > Cheers, > > My bug-ridden source follows: > > > > ; The original code was in Chez Scheme, link below: > > ; > https://github.com/jhidding/lyonesse/blob/master/gtk-tutorial/window.scm > > > > ; I gather that it just pops up a window? > > ; He didn't connect the "X" to the destroy action, > > ; so the window might be hard to get rid of. > > > > (use-modules (system foreign)) > > > > (define libgtk (dynamic-link "libgtk-3")) > > (define libgdk (dynamic-link "libgdk-3")) > > (define libgio (dynamic-link "libgio-2.0")) > > (define libgobject (dynamic-link "libgobject-2.0")) > > > > ;; GtkApplication* -> GtkWidget* > > (define gtk-application-window-new > > (pointer->procedure > > '* > > (dynamic-func "gtk_application_window_new" libgtk) > > (list '*))) > > > > > > ;; GtkWindow*, gchar* -> void > > (define gtk-window-set-title > > (pointer->procedure > > void > > (dynamic-func "gtk_window_set_title" libgtk) > > (list '* '*))) > > > > > > (define gtk-window-set-default-size > > (pointer->procedure > > void > > (dynamic-func "gtk_window_set_default_size" libgtk) > > (list '*))) > > > > > > ;; GtkWidget* -> void > > (define gtk-widget-show-all > > (pointer->procedure > > void > > (dynamic-func "gtk_widget_show_all" libgtk) > > (list '*))) > > > > > > ;; gchar*, GApplicationFlags -> GtkApplication* > > (define gtk-application-new > > (pointer->procedure > > '* > > (dynamic-func "gtk_application_new" libgtk) > > (list '* int))) ; FIXME guess > > > > > > ;; GApplication*, int, char ** -> int > > (define g-application-run > > (pointer->procedure > > int > > (dynamic-func "g_application_run" libgio) > > (list '* int '*))) > > > > > > ;; gpointer, gchar*, GCallback, gpointer, GConnectFlags -> gulong > > (define g-signal-connect-object > > (pointer->procedure > > unsigned-long > > (dynamic-func "g_signal_connect_object" libgobject) > > (list '* '* '* '* int))) > > > > > > ;; gpointer -> void > > (define g-object-unref > > (pointer->procedure > > void > > (dynamic-func "g_object_unref" libgobject) > > (list '*))) > > > > > > (define (activate gtk-app user-data) > > (let ([window (gtk-application-window-new gtk-app)]) > > (gtk-window-set-title window "Example Window") > > (gtk-window-set-default-size window 200 200) > > (gtk-widget-show-all window))) > > > > > > ;; HELP: This obviously won't work. > > ;; How would I give GTK a Guile callback? > > (define (callback p) > > (let ([code (foreign-callable p (iptr iptr) void)]) > > (lock-object code) > > (foreign-callable-entry-point code))) > > > > > > ;; HELP: how do you pass a string from Guile to a C function? > > (define (main) > > (let ([argc (length (command-line))] > > [argv (command-line)] > > [app (gtk-application-new (scm->pointer "what needs this > > anyway?") 0)]) > > (g-signal-connect-object app "activate" (callback activate) 0 0) > > (g-application-run app 0 0) > > (g-object-unref app))) > > > > (main) > > > > > > ------------------------------ > > > > Subject: Digest Footer > > > > _______________________________________________ > > guile-user mailing list > > guile-user@gnu.org > > https://lists.gnu.org/mailman/listinfo/guile-user > > > > > > ------------------------------ > > > > End of guile-user Digest, Vol 216, Issue 15 > > ******************************************* > > >