使用 sfml,出于某些原因我想将我的顶点存储在这样的列表中:
std::list<sf::Vertex> shape{};
shape.push_back(sf::Vertex(...);
但我真的不知道如何调用
window.draw(...);
我猜它应该像这样:
window.draw(shape.begin(), shape.size(), sf::LineStrip);
现在我猜它不起作用的原因是因为列表不支持随机访问...有人知道吗?
最佳答案
SFML 期望顶点在连续存储中给出。你可以这样做:
std::vector<sf::Vertex> vec(shape.begin(), shape.end()); // copy
window.draw(vec.data, vec.size(), sf::LineStrip);
当然,首先使用vector
(或VertexBuffer
)会更有效。
关于c++ - 使用 std::list 存储顶点并使用 SFML 绘制它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52243632/