c++ - 使用 std::list 存储顶点并使用 SFML 绘制它们

标签 c++ sfml vertex vertices stdlist

使用 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/

相关文章:

c++ - 为什么右值引用整数合法

c++ - 进程返回 139 (0x8B) 段错误

c++ - 在 linux (ubuntu) 上编译 SFML

c++ - Direct3D 多顶点缓冲区,非交错元素

Java Jung 顶点割图

c++ - 弱指针分配失败

c++ - 使用宏的编译时条件类型操作

C++ EXC_BAD_ACCESS,argv[]

c++ - SFML 中 getPosition() 的问题

algorithm - 删除一些边后的DFS