использование std :: list для хранения вершин и отрисовки их с помощью SFML - PullRequest
0 голосов
/ 09 сентября 2018

Используя sfml, по некоторым причинам я хотел бы сохранить свои вершины в таком списке:

std::list<sf::Vertex> shape{};
shape.push_back(sf::Vertex(...);

но я действительно не знаю, как позвонить на

window.draw(...);

Я думаю, это должно выглядеть примерно так:

window.draw(shape.begin(), shape.size(), sf::LineStrip);

Теперь, я думаю, причина в том, что это не работает, в том, что списки не поддерживают случайный доступ ... Любая идея, кто-нибудь?

1 Ответ

0 голосов
/ 09 сентября 2018

SFML ожидает, что вершины будут предоставлены в непрерывном хранилище. Вы можете сделать это:

std::vector<sf::Vertex> vec(shape.begin(), shape.end()); // copy
window.draw(vec.data, vec.size(), sf::LineStrip);

Конечно, было бы эффективнее просто использовать vector (или VertexBuffer) в первую очередь.

...