Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Résolu] Partage de ressources entre contextes OpenGL  (Lu 2134 fois)

0 Membres et 1 Invité sur ce sujet

Gouwi

  • Jr. Member
  • **
  • Messages: 57
    • Live Messenger (MSN) - Arkada.Eldrena@hotmail.fr
    • Voir le profil
    • E-mail
[Résolu] Partage de ressources entre contextes OpenGL
« le: Mai 25, 2013, 10:04:27 pm »
Bonjour tout le monde !

D'abord, comme cela fait très longtemps que je n'était pas venu sur ce site :

Félicitations à Laurent pour la sortie de la SFML 2.0 en stable et du rework du site ! Vraiment de l'excellent boulot.

Après mes examens de M1 passés avec succès, j'ai décidé de continuer un projet qui utilise en masse la technique de l'offscreen rendering en OpenGL.

Simplement, je crée un contexte avec la SFML :

sf::Context * OGLMainContext = new sf::Context();

Ensuite j'effectue le rendu dans un framebuffer object.

Je crée une fenêtre :

sf::RenderWindow * rw = new sf::RenderWindow(...bla...bla...bla...);

Et ensuite j'aimerais transférer le rendu du framebuffer vers la fenêtre.

J'ai cru comprendre que les ressources entre les contextes OpenGL de la SFML sont partagées, donc j'essaie via un glBlitFrameBuffer(...) de transférer le contenu mais cela ne marche pas !? Pas de vrai partage ?

Donc pour essayer, a partir de la texture du FrameBuffer, je crée un tableau classique C++ que je rempli à chaque frame puis que j'affiche lors du dessin dans la fenetre. Cette technique fonctionne, mais possède des perfs pourries. (dix fois plus lent selon mes estimations)

Je souhaiterais donc savoir pourquoi le partage SFML ne fonctionne pas et si quelqu'un connait une autre technique pour faire ceci.

Cordialement,

Gouwi
« Modifié: Mai 26, 2013, 12:20:40 am par Gouwi »
Ce n'est pas parce que c'est difficile que nous ne codons pas, c'est parce que nous ne codons pas que c'est difficile !

Crunchbang Linux 64Bits
Intel Core I7 / Nvidia Geforce 540GT 2 Go / 8 Go Ram

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Partage de ressources entre contextes OpenGL
« Réponse #1 le: Mai 25, 2013, 10:14:11 pm »
Les FBOs ne sont pas partagés entre contextes (les FBO core et ARB, pour être précis -- pas les FBO EXT apparemment). Par contre les textures et les render-buffers le sont, donc tu devrais pouvoir t'en sortir.

Pour plus d'infos cherche sur Google, il y a plein de réponses pertinentes pour cette problématique, moi je n'ai regardé que vite fait pour pouvoir te répondre ;)
Laurent Gomila - SFML developer

Gouwi

  • Jr. Member
  • **
  • Messages: 57
    • Live Messenger (MSN) - Arkada.Eldrena@hotmail.fr
    • Voir le profil
    • E-mail
Re : Partage de ressources entre contextes OpenGL
« Réponse #2 le: Mai 26, 2013, 12:19:45 am »
Okay nice ! J'ai testé et le partage de textures fonctionne niquel.

Parti d'une mauvaise approche ! (Partage de FrameBuffer)

Merci pour la réponse !  ;)

Cordialement,

Gouwi
Ce n'est pas parce que c'est difficile que nous ne codons pas, c'est parce que nous ne codons pas que c'est difficile !

Crunchbang Linux 64Bits
Intel Core I7 / Nvidia Geforce 540GT 2 Go / 8 Go Ram

 

anything