Historique des modifications - Message

Message #3917

Sujet: Les VBO dans la version 1.5 svn


Type Date Auteur Contenu
Création du message 04-05-2008 06:28:26 Ikam
concernant le bug qui fait crasher la demo, j'ai posté un message sur ce sujet sur le forum officiel. Il en est retourné que le probleme viens de la fonction qui consiste à mettre a jour les buffers et les supprimer si ceux-ci n'ont pas été utilisés depuis plusieurs frames.

Le bug viens du fait que l'iterateur qui parcours l'arbre où sont stocké les buffers est cassé quand on supprime un element, alors qu'on parcours l'arbre.

Un membre a proposé une solution qui reset l'iterateur a chaque delete de buffer, ainsi l'iteration se stoppe quand y'a plus de buffer à supprimer, mais c'est pas tres optimisé puisque ca re-parcours l'arbre a chaque fois. J'ai proposé la solution suivante qui me semble plus efficace pour corrigé le probleme :

//! Update all hardware buffers, remove unused ones
void CNullDriver::updateAllHardwareBuffers()
{
core::map<const scene::IMeshBuffer*,SHWBufferLink*>::ParentFirstIterator Iterator=HWBufferMap.getParentFirstIterator();

irr::core::list<SHWBufferLink*> LinkList;

for (;!Iterator.atEnd();Iterator++)
{
SHWBufferLink *Link=Iterator.getNode()->getValue();

Link->LastUsed++;
if (Link->LastUsed>200000)
{
LinkList.push_back(Link);
//deleteHardwareBuffer(Link);
}
}

// if there is some buffers to delete
if(!LinkList.empty())
{
// delete all buffer in list
irr::core::list<SHWBufferLink*>::Iterator it = LinkList.begin();
for (; it != LinkList.end(); ++it)
{
deleteHardwareBuffer((*it));
}
}
}

ps : quoiqu'il en soit les vbo sont toujours en phase de dev et de mise au point avant leur sortie officiel, donc tout ca risque peut etre de changer un peu et n'est valable que pour le moment pour patienter :p

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
166 invités en ligne
membre en ligne: -
RSS Feed