多线程 OpenGL 绘图策略

GDI 不支持多个线程。 必须为每个线程使用不同的设备上下文和不同的呈现上下文。 这往往会限制在运行 OpenGL 应用程序的单处理器系统中使用多个线程的性能优势。 但是,有一些方法可以将线程与单个处理器系统配合使用,以大大提高性能。 例如,可以使用单独的线程将 OpenGL 呈现调用传递给专用三维硬件。

对称多处理 (SMP) 系统可以从使用多个线程中获益匪浅。 一个明显的策略是为每个处理器使用单独的线程来处理在单独的窗口中的 OpenGL 呈现。 例如,在外部测试模拟应用程序中,可以使用单独的处理器和线程来呈现正面、背面和侧视图。

一个线程只能有一个当前活动呈现上下文。 使用多个线程和多个呈现上下文时,必须小心同步它们的使用。 例如,在所有线程完成绘制后,仅使用一个线程调用 SwapBuffers