+ Répondre à la discussion
Affichage des résultats 1 à 20 sur 20

Discussion: SFML et OpenGL3.x

  1. #1
    Membre éclairé
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2006
    Messages : 408
    Points : 345
    Points
    345

    Par défaut SFML et OpenGL3.x

    Bonojur,
    je voulais savoir s'il est possible d'avoir un RenderContext valide pour GL3 en utilisant SFML.
    Sinon, à quel endroit dois-je modifier le code?

    En fait, c'est relativement d'obtenir un contexte valide sous SDL (GLUT, GLFW, ... pas encore essayés), mais j'aimerais utiliser SFML pour mon projet, d'où la question.
      0  0

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2003
    Messages : 10 651
    Points : 17 475
    Points
    17 475

    Par défaut

    C'est implémenté depuis peu dans la branche SFML 2.0, que tu peux récupérer via SVN (ça ne marche que sous Windows pour l'instant).
    Si pour une raison quelconque tu ne peux pas, je te montrerai le code qu'il faut ajouter.
    Mieux que SDL : découvrez SFML
      0  0

  3. #3
    Membre éclairé
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2006
    Messages : 408
    Points : 345
    Points
    345

    Par défaut

    Le code dont tu parles, c'est le code avec wglCreateContextAttribsARB(dc, attribs); ?
    Celui-là, je l'ai. (J'ai créé un petit bout de code pour contexte GL3 en utilisant SDL, ca n'a pas vraiment été un problème).

    Mais merci pour la réponse, je ferais un checkout ce soir.

    Sinon, est-ce que les fonctions GL3 sont disponibles à partir d'un en-tête chez toi ou est-ce que je dois me les initialiser moi-même (genre avec glew) ?
      0  0

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2003
    Messages : 10 651
    Points : 17 475
    Points
    17 475

    Par défaut

    Le code dont tu parles, c'est le code avec wglCreateContextAttribsARB(dc, attribs); ?
    Celui-là, je l'ai
    Alors impeccable, c'est tout ce qu'il faut.

    Sinon, est-ce que les fonctions GL3 sont disponibles à partir d'un en-tête chez toi ou est-ce que je dois me les initialiser moi-même (genre avec glew) ?
    SFML ne gère pas les extensions, il faut effectivement utiliser GLEW.
    Mieux que SDL : découvrez SFML
      0  0

  5. #5
    Membre éclairé
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2006
    Messages : 408
    Points : 345
    Points
    345

    Par défaut

    tiens, j'ai remarqué que ton contexte GL n'est pas "forward compatible", c'est-à-dire, sans les fonctions obsolètes. Je me doute que tu t'en sers pour SFML et que ca va pas être enlevé sous peu, si?

    Sinon, tu saurais pas s'il y a un header ne contenant plus que les fonctions GL3, histoire qu'utiliser des fonctions obsolètes me donne des erreurs de compilation et non pas des mauvaises surprises dans qqs mois quand la cmopatibilité sera effectivement brisée par le driver?

    (Je sais que je peux m'en construire un tout seul, soit en utilisant le make custom de glew, soit en y allant à la main, mais c'est prenant de temps et de tête que de chercher ces fonctions ou extensions...)
      0  0

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2003
    Messages : 10 651
    Points : 17 475
    Points
    17 475

    Par défaut

    tiens, j'ai remarqué que ton contexte GL n'est pas "forward compatible", c'est-à-dire, sans les fonctions obsolètes. Je me doute que tu t'en sers pour SFML et que ca va pas être enlevé sous peu, si?
    J'ai pas compris

    Sinon, tu saurais pas s'il y a un header ne contenant plus que les fonctions GL3, histoire qu'utiliser des fonctions obsolètes me donne des erreurs de compilation et non pas des mauvaises surprises dans qqs mois quand la cmopatibilité sera effectivement brisée par le driver?
    Non, sorry.
    Mieux que SDL : découvrez SFML
      0  0

  7. #7
    Membre éclairé
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2006
    Messages : 408
    Points : 345
    Points
    345

    Par défaut

    C'est ce que je voulais dire, c'est que ton contexte GL n'est pas celui qui supprime les fonctions obsolètes (faut passer 2 autres paramètres à wglCreateContextAttribsARB() pour cela*).

    Et je pense que tu utilises des fonctionalités niveau GL1.x ou 2.x pour SFML, notamment pour l'interface utilisateur et tout ca. Donc, utiliser un contexte 3.x pur pourrait peut-être te poser problème.


    * et prier pour que le driver enlève effectivement ces fonctions (ce qui n'est pas encore le cas chez nVidia).
      0  0

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2003
    Messages : 10 651
    Points : 17 475
    Points
    17 475

    Par défaut

    Ok je vois, merci pour l'info. Tant que je ne me serai pas débarassé des fonctions obsolètes il faudra donc que j'évite de laisser la possibilité de créer des contextes 3.0 purs.
    Mieux que SDL : découvrez SFML
      0  0

  9. #9
    Membre éclairé
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2006
    Messages : 408
    Points : 345
    Points
    345

    Par défaut

    Oui, enfin ca fonctionnera quand même si tu mets le "forward compatible bit" pour l'instant, mais uniquement jusqu'à ce que NV corrige ce bug.

    -> http://www.gamedev.net/community/for...opic_id=512890
    (ma source)

    Code :
    1
    2
    3
    4
    5
    6
    7
     
    {
    WGL_CONTEXT_MAJOR_VERSION_ARB, 3,
    WGL_CONTEXT_MINOR_VERSION_ARB, 0, //peut être 1 aussi, ca ne change rien
    WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB, //ce bit est important pour enlever la foncitonalité obsolète
    0 //fin de liste
    };
    Voilà.
    En fait, je ne sais pas comment tu dessines les rectangles de l'interface (pour les sprites, tout ca), mais je suppose que tu utilises la facon la plus facile: le pipeline fixe de l'openGL classique. Or cette fonctionalité est celle qui jarte(ra à un moment ou autre de facon définitive), d'où le problème.

    Tu pourrais aussi me rassurer et dire que SFML est entièrement GL 2.1, auquel cas porter vers 3.x ne sera pas trop difficile.

    Enfin, si je dis ca, c'est parce que je suis en train de créer mon petit moteur GL 3.x pur et que j'aimerais avoir des erreurs à la compilation et non à l'execution si j'utilise des choses obsolètes...
      0  0

  10. #10
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2003
    Messages : 10 651
    Points : 17 475
    Points
    17 475

    Par défaut

    SFML utilise les fonctions les plus au ras des paquerettes d'OpenGL 1.x : le rendu immédiat (glBegin / glVertex / glEnd). Ca peut paraître idiot, mais c'est ce qu'il y a de mieux pour du rendu de quad complétement dissocié (i.e. pas de batching).

    Enfin bon un de ces jours il faudra que je fasse évoluer le code de rendu, pas le choix.
    Mieux que SDL : découvrez SFML
      0  0

  11. #11
    Membre éclairé
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2006
    Messages : 408
    Points : 345
    Points
    345

    Par défaut

    Je m'en doutais. C'est pour ca que SFML est portable vers GL ES 1.1 (iPhone).
    Du coup, si j'utilise un contexte "exclusif" GL 3.x, ca risquera de briser un peu tout l'appli, non?
      0  0

  12. #12
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2003
    Messages : 10 651
    Points : 17 475
    Points
    17 475

    Par défaut

    Je ne me suis pas trop penché sur le sujet, mais vu ce que tu dis il y a des chances oui. De toute façon la prochaine grosse étape après SFML 2.0 sera certainement une refonte totale du code de rendu, afin d'être compatible avec tous les back-end OpenGL à la mode (GL ES 2.x, GL 3.x, ...).
    Mieux que SDL : découvrez SFML
      0  0

  13. #13
    Membre éclairé
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2006
    Messages : 408
    Points : 345
    Points
    345

    Par défaut

    Tu vas t'amuser avec les différentes spec des shaders (GLSL 1.20 différent de 1.30 différent de 1.40).
    Je te conseille de viser la compatibilité avec GL3.0, vu que GL ES 2.0 et ES 3.0 (prevu pour 2010) suivent la même route (avec juste quelques fonctions en moins, je crois).
    Puis... iPhone HD, Palm Pre, ya pas mal de plateformes pour ES 2.0 en perspective..
      0  0

  14. #14
    Membre à l'essai

    Inscrit en
    février 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : février 2008
    Messages : 14
    Points : 20
    Points
    20

    Par défaut

    Bonjour Laurent , tout d'abord permet moi de te félicité pour cette librairie.
    je développe en amateur sous Linux , et dernièrement je m'intéresse à l' OpenGL 3 de très près , n'ayant ni l'envie ni le temps de manipulé X11 pour avoir un contexte OpenGL 3 , je voulais savoir se qu'il en était de la version 2.0 pour Linux.


    Merci.
      0  0

  15. #15
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2003
    Messages : 10 651
    Points : 17 475
    Points
    17 475

    Par défaut

    La gestion des contextes OpenGL 3.0 n'est toujours pas implémentée sous Linux, mais ça peut se faire rapidement. Il faut juste que je trouve comment faire (ça ne devrait pas être très différent de la version Windows)
    Mieux que SDL : découvrez SFML
      0  0

  16. #16
    Nouveau Membre du Club
    Inscrit en
    juin 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : juin 2009
    Messages : 35
    Points : 31
    Points
    31

    Par défaut SFML 2.0 officiel

    Bonjour monsieur Gomila. Savez-vous quand sera disponible la version officielle de SFML 2.0 (la version actuelle est 1.5 je crois...). Conservera-t-elle la possibilité de créer un contexte OpenGL 3.x. Il me semble qu'actuellement, la version SVN crée automatiquement un contexte OpenGL 3.0 (si les drivers le permettent évidemment). C'est bien parce que c'est transparent pour l'utilisateur, mais ne serait-il pas possible de proposer un argument optionnel (ou pas optionnel d'ailleurs, j'en sais rien!...) afin de choisir la version du contexte OpenGL créé.
      0  0

  17. #17
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2003
    Messages : 10 651
    Points : 17 475
    Points
    17 475

    Par défaut

    La gestion des contextes OpenGL 3.0 n'est toujours pas implémentée sous Linux, mais ça peut se faire rapidement
    Bon ben en fait voilà, c'est fait (dans la branche sfml2). Si tu as l'occasion de tester n'hésite pas, car chez moi je ne peux pas le faire

    Savez-vous quand sera disponible la version officielle de SFML 2.0
    Non, mais c'est pas encore pour tout de suite

    Conservera-t-elle la possibilité de créer un contexte OpenGL 3.x
    Il n'y a que dans SFML 2 que tu peux créer un contexte 3.0. Les versions 1.x ne le feront jamais.

    Il me semble qu'actuellement, la version SVN crée automatiquement un contexte OpenGL 3.0 (si les drivers le permettent évidemment). C'est bien parce que c'est transparent pour l'utilisateur, mais ne serait-il pas possible de proposer un argument optionnel (ou pas optionnel d'ailleurs, j'en sais rien!...) afin de choisir la version du contexte OpenGL créé
    Ca peut se faire oui. Il faudrait d'abord voir quel intérêt cela aurait. Etant donné que je crée des contextes compatibles avec OpenGL < 3.0, ça n'a normalement aucun effet de bord.
    Mieux que SDL : découvrez SFML
      0  0

  18. #18
    Membre à l'essai

    Inscrit en
    février 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : février 2008
    Messages : 14
    Points : 20
    Points
    20

    Par défaut

    Merci pour ces réponses.
    Je tâtonne la SFML depuis 2 / 3 jours , c'est super.
    étant aussi utilisateur du Purebasic je pense faire un binding de la librairie , cela intéressera certainement cette petite équipe qui produit pas mal de petit jeu : BGames
    Mais avant de me lancer dedans , est ce que la SFML 2.0 va connaître une refonte au point de supprimer ou de renommé des fonctions déjà existante ?
      0  0

  19. #19
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2003
    Messages : 10 651
    Points : 17 475
    Points
    17 475

    Par défaut

    Mais avant de me lancer dedans , est ce que la SFML 2.0 va connaître une refonte au point de supprimer ou de renommé des fonctions déjà existante ?
    Oui, malheureusement. Il est donc hasardeux de commencer un binding tout de suite, à moins que tu ne suives les modifications au fur et à mesure.
    Mieux que SDL : découvrez SFML
      0  0

  20. #20
    Membre à l'essai

    Inscrit en
    février 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : février 2008
    Messages : 14
    Points : 20
    Points
    20

    Par défaut

    Merci Laurent , je vais attendre patiemment la 2.0.
    j'espère que cette lib va prendre de plus en plus d'ampleur !
      0  0

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •