1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
int vertexSize = 0;
vector listeDeVector; // Je sais pas encore comment le typer celui là
for(int i = 0; i < sources->getCount(); i++)
{
const char* semantic = sources[i]->getSemantic();
if(strcmp(semantic, "POSITION") == 0)
{
// On cré un vector<VERTEX_POSITION> et on le rempli
vertexSize += sizeof(VERTEX_POSITION);
listeDeVector.push_back(monNouveauVector);
}
elseif(strcmp(semantic, "NORMAL") == 0)
{
flags = flags | D3DFVF_NORMAL;
vertexSize += sizeof(VERTEX_NORMAL);
// On crée un vector de VERTEX_NORMAL, et on le remplit
listeDeVector.push_back(monNouveauVector);
}
}
// Ici, on a chaque type d'information dans un vector. Chaque vector dans un vector conteneur, la taille finale d'un vertex, et les flags FVF qui sont ok
// Déclaration d'un vector dont les éléments on une taille de <vertexSize>
vector<je sais pas quoi mettre> vertexVector;
for(int i = 0; i < nbVertex; i++)
{
// variable qui a une taille de <vertexSize>
// int position = 0;
for(int j = 0; j < listeDeVector.size(); j++)
{
// copy dans vertexVector[i], à partir de la position <position>, de la taille de sizeof(élément de listeDeVector[j]);
position += sizeof(element de listeDeVector[j]);
}
}
// Et ici on a un vector de vertex, avec chaque vertex ayant toutes ses infos, les flags FVF qui sont ok, reste plus qu'à copier tout ça dans un vertexBuffer |
Partager