我需要加速一些计算和计算结果,然后用于绘制 OpenGL 模型。当我将 std::vector 更改为 Concurrency::concurrent_vector 并使用 parallel_for 而不仅仅是 for 循环时,主要加速存档。此向量(或 concurrent_vector)在 for(或 parallel_for)循环中计算,并包含 OpenGL 可视化的顶点。
使用 std::vector 很好,因为 OpenGL 渲染过程依赖于 std::vector 保持其项目按顺序排列的事实,而 concurrent_vector 则不是这种情况。代码运行如下:
glVertexPointer(3, GL_FLOAT, 0, &vectorWithVerticesData[0]);
生成 concurrent_vector 并将其复制到 std::vector 太昂贵了,因为有很多项目。
所以,问题是:我想使用 OpenGL 数组,但也想使用与 OpenGL 输出不兼容的 concurrent_vector。
有什么建议么?