在 SFML 顶点数组中组合基元

Combining Primitives in SFML Vertex Arrays

SFML 的 documentation 声明您可以组合图元来创建顶点数组。我认为他们指的是多个 Triangles 可以分组为 TriangleFanTriangleStrip

我想知道是否有办法将两个现有的基元类型合并到一个顶点数组中。例如,我可以将一堆顶点定义为 TriangleFan 然后切换到 LineStrip 吗?或者这需要两个单独的数组吗?

不可以,每个顶点数组只能使用一种基元类型。

使用以下绘图函数,理论上您可以使用一个 array/vector(而不是 sf::VertexArray,并提供不同的偏移量和大小,以使用不同的原始类型绘制数组的不同部分,但这实际上是相同的就像使用两个不同的数组一样,因此您需要问自己将这些顶点混合在一起有什么好处。

void draw(const Vertex *vertices, std::size_t vertexCount, PrimitiveType type, const RenderStates &states=RenderStates::Default)