Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: gaulois94 le Août 02, 2013, 12:22:31 am

Titre: GTK3 et la SFML
Posté par: gaulois94 le Août 02, 2013, 12:22:31 am
Bonsoir (oui il est tard :) )

Alors voila, sous linux, je peux facilement dir à une fenêtre SFML de s'intégrer à GTK à l'aide de SFMLArea.get_property("window").get_xid() où SFMLArea est un DrawingArea.

Seul soucis, get_xid() ne fonctionne que pour les fenêtres tournant sous X11 !!! J'aimerai donc connaître son équivalent Window si possible (ou alors une façon plus propre d'intégrer SFML à GTK).

Merci d'avance :) .
Titre: Re : GTK3 et la SFML
Posté par: Cpl.Bator le Août 02, 2013, 01:03:11 am
de mémoire j'utilisais cette commande pour mixer sfml & gtk : gdk_x11_drawable_get_xid() sous linux.
je pouvais rendre la sfml dans n'importe quel widget.
Pour windows , si je comprend ton topic, il te faut le handle de la fenetre ou du widget.
msdn devrais répondre à ta question , si tu utilises GTK sous windows , ma recherche google me donne ce lien : http://stackoverflow.com/questions/9259731/getting-gtk-gdk-window-handle-on-windows (http://stackoverflow.com/questions/9259731/getting-gtk-gdk-window-handle-on-windows)
Titre: Re : GTK3 et la SFML
Posté par: gaulois94 le Août 02, 2013, 01:41:09 am
C'est exact : sous Linux, j'utilise GdkX11 qui me permettais de faire un get_xid().
Sous windows, quand j'ai essayé la command, je suis tombé sur un Gtk.Win32Window !
Titre: Re : GTK3 et la SFML
Posté par: Cpl.Bator le Août 02, 2013, 01:00:09 pm
mon lien réponds donc à ta question.
d'après le lien tu dois appeler drawingarea.window.ensure_native() pour avoir le bon handle : drawingarea.window.handle
Titre: Re : GTK3 et la SFML
Posté par: gaulois94 le Août 03, 2013, 12:40:57 pm
Merci.
En réalité, c'était plus un problème de binding qu'autre choses (je programme avec python et j'exporte  mon code sous windows). À la compilation, il avait oublié de compiler GdkWin32 qui contient la classe Win32Window qui elle même contient get_handle :) (ce fut une guerre insurmontable pour obtenir ce trucs :) ).