IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques C++ Discussion :

Utilisation des API BgFx


Sujet :

Bibliothèques C++

  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    924
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 924
    Par défaut Utilisation des API BgFx
    Bonjour,
    Quand on effectue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    bgfx::VertexBufferHandle vbh = bgfx::createVertexBuffer(
    	bgfx::makeRef(pvu, posu * sizeof(float)),
    	PosTVertex::ms_layout
    );
    Peut-on libérer le pointeur pvu après l'appel ?
    Images attachées Images attachées    

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    Hello,

    Alors, en gros, non, tu ne peux pas libérer pvu tout de suite après avoir appelé bgfx::createVertexBuffer avec bgfx::makeRef. Bgfx a besoin de ces données pendant au moins deux frames pour pouvoir les utiliser.
    Si tu le libères trop tôt, ça risque de planter ou de bugger l'affichage.
    Il faut attendre un peu ou utiliser une autre méthode si tu veux gérer la mémoire différemment.

    https://github.com/bkaradzic/bgfx/issues/499
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    924
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 924
    Par défaut
    OK mais je le libére quand ????

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    Il y a 3 points d'interrogations en trop !

    Attends au moins deux appels à bgfx::frame() avant de libérer la mémoire pointée par pvu. Après ça, normalement, c'est bon.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    924
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 924
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Il y a 3 points d'interrogations en trop !

    Attends au moins deux appels à bgfx::frame() avant de libérer la mémoire pointée par pvu. Après ça, normalement, c'est bon.
    Je peux aussi le libérer dés que je détruit le VertexBufferHandle

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    En théorie, oui, tu peux libérer le pointeur pvu dès que tu appelles bgfx::destroy(vbh).
    Cependant, garde en tête la règle des deux frames après l'appel à bgfx::createVertexBuffer avant de modifier ou libérer la mémoire si tu ne détruis pas le VertexBufferHandle immédiatement.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

Discussions similaires

  1. Bioinfo : utilisation des API EnsEMBL en perl
    Par bluemartini dans le forum Contribuez
    Réponses: 5
    Dernier message: 19/09/2013, 14h49
  2. Utilisation des API .Net
    Par pc152 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/06/2009, 11h25
  3. [VB.Net][Fichier ini] utilisation des API
    Par DonF dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/03/2009, 14h32
  4. Utilisation des API .NET depuis Java ?
    Par yjuliet dans le forum VB.NET
    Réponses: 0
    Dernier message: 17/02/2009, 10h59
  5. Utilisation des API MySQL // ADO ou BDE ? (sujet 2)
    Par rohstev dans le forum C++Builder
    Réponses: 8
    Dernier message: 07/11/2003, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo