Effectivement, bête erreur d'inattention !
Merci beaucoup.
Du coup le code fonctionne, et j'ai voulu l'intégrer dans la fonction draw d'une classe Grid que j'ai créé:
void Grid::draw(sf::RenderTarget & target, sf::RenderStates states) const
{
states.transform *= getTransform();
target.draw(m_vertices, states); //D'autres formes dessinée avant les rectangles
/*for(int i(0); i < m_rectArray.size(); i++)
target.draw(m_rectArray[i]);*/ //Cette boucle fonctionne
for(vector<sf::RectangleShape>::iterator it = m_rectArray.begin(); it != m_rectArray.end(); it++)
target.draw(*it);
}
Cependant il me sort une autre erreur.
Grid.cpp|80|error: conversion from 'std::vector<sf::RectangleShape>::const_iterator {aka __gnu_cxx::__normal_iterator<const sf::RectangleShape*, std::vector<sf::RectangleShape> >}' to non-scalar type 'std::vector<sf::RectangleShape>::iterator {aka __gnu_cxx::__normal_iterator<sf::RectangleShape*, std::vector<sf::RectangleShape> >}' requested|
Et j'avoue que j'ai du mal à la comprendre.
Ensuite, j'ai une deuxième question qui est en rapport avec le sujet.
Pour réduire le nombre de draw calls, je pense créer moi-même mes Rectangles en utilisant des VertexArray pour ne faire qu'un seul draw call.
Cependant je me demandait, est-ce qu'il n'y aurait pas un moyen de faire un seul draw call avec une sorte de VertexArray pour Rectangle ou autres formes plus complexes (autre que de faire un getPoint() et l'insérer dans un VertexArray) ?
Merci encore