GLUT , X11

Philippe49Philippe49 Membre
Agréable surprise ... Je compile un programme C (même pas un projet) utilisant GLUT (le framework GLUT.framework), et l'exécutable fonctionne aussi bien sur X11 quand on le lance d'un terminal X11 que sur OS X quand on le lance d'un terminal OS X. D'habitude quand on fait un exécutable avec la librairie XLib, on peut le compiler sur MAAc OS X, mais il se lance obligatoirement sur X11.

Quelqu'un a-t-il une lecture claire sur la démarcation entre X11 et Mac OS X ? 

Réponses

  • AliGatorAliGator Membre, Modérateur
    04:58 modifié #2
    o_O Je suis aussi étonné que toi...
    Cependant faudrait regarder le GLUT.framework, il a peut-être différentes librairies selon les versions et des alternatives... Un peu à  l'image des Universal Binary où l'outil "lipo" permet d'embarquer le code pour des architectures différentes et où il utilise la plus adaptée... p'tet qu'il y a un truc similaire pour X11 ?

    Ou alors un chargement dynamique qui essaye de charger la Xlib et s'il ne la toruve pas essaye avec le WindowServer de OSX...? (un coup de "nm" sur le framework?)
  • Philippe49Philippe49 Membre
    04:58 modifié #3
    Dans glut.h du framework, on trouve

    #ifndef GLUT_XLIB_IMPLEMENTATION&nbsp; /* Allow this to be overriden. */<br />#define GLUT_XLIB_IMPLEMENTATION	15<br />#endif
    


    Ce qui tenderait à  prouver que cette version de glut.h est XLib compatible.


    Avec un nm sur le framework, j'observe que les méthodes type gl, glu sont undefined, (X11 peut donc prendre les fonctions de sa librairie lors de l'exécution ?), quant aux méthodes préfixées par glut elles sont en mode Text (Et donc pas besoin d'appel à  des fonctions glut lors de l'exécution par X1 : le texte de ces fonctions fait des appels à  gl et glu ?) . Ca a l'air de coller , non ?

  • schlumschlum Membre
    juillet 2009 modifié #4
    Euh... Quel rapport entre GLUT.framework et X11 ?  ???
    GLUT.framework n'utilise pas la Xlib

    % otool -L /System/Library/Frameworks/GLUT.framework/GLUT&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 16/07/2009<br />/System/Library/Frameworks/GLUT.framework/GLUT:<br />	/System/Library/Frameworks/GLUT.framework/Versions/A/GLUT (compatibility version 1.0.0, current version 1.0.0)<br />	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 34.0.0)<br />	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.17.0)<br />	/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)<br />	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)<br />	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 949.43.0)<br />	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 677.22.0)<br />	/System/Library/Frameworks/QTKit.framework/Versions/A/QTKit (compatibility version 1.0.0, current version 1.0.0)<br />	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)<br />	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.3)<br />	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0)
    


    Donc le lancer dans X11 ou ailleurs, ça doit donner le même résultat...

    Le GLUT de Fink par contre passe par Xlib il me semble.
  • schlumschlum Membre
    04:58 modifié #5
    Par ailleurs, pour lancer un programme utilisant XLib dans le terminal classique, il suffit de définir un "DISPLAY=:0" de manière permanente dans le fichier de config du shell.
  • Philippe49Philippe49 Membre
    04:58 modifié #6
    dans 1247760737:

    Euh... Quel rapport entre GLUT.framework et X11 ?  ???
    GLUT.framework n'utilise pas la Xlib

    Ben, c'est justement ma question.


    dans 1247760737:

    Donc le lancer dans X11 ou ailleurs, ça doit donner le même résultat...

    C'est là  que ce n'est pas clair pour moi. Peux-tu préciser ?
  • Philippe49Philippe49 Membre
    04:58 modifié #7
    dans 1247781752:

    dans 1247760737:

    Donc le lancer dans X11 ou ailleurs, ça doit donner le même résultat...

    C'est là  que ce n'est pas clair pour moi. Peux-tu préciser ?

    Effectivement, on peut lancer TextEdit (l'exécutable) à  partir du Terminal X11  ???
  • schlumschlum Membre
    04:58 modifié #8
    Ben un terminal est un terminal, c'est là  que je ne te suis pas trop...
    Celui de X11 positionne juste certaines variables d'environnement pour pouvoir utiliser Xlib (DISPLAY...)
Connectez-vous ou Inscrivez-vous pour répondre.