Estratégias de desenho opengl multithread
O GDI não dá suporte a vários threads. Você deve usar um contexto de dispositivo distinto e um contexto de renderização distinto para cada thread. Isso tende a limitar as vantagens de desempenho do uso de vários threads com sistemas de processador único que executam aplicativos OpenGL. No entanto, há maneiras de usar threads com um único sistema de processador para aumentar consideravelmente o desempenho. Por exemplo, você pode usar um thread separado para passar chamadas de renderização OpenGL para hardware 3D dedicado.
Sistemas SMP (multiprocessamento simétrico) podem se beneficiar muito do uso de vários threads. Uma estratégia óbvia é usar um thread separado para cada processador lidar com a renderização do OpenGL em janelas separadas. Por exemplo, em um aplicativo de simulação de pré-lançamento, você pode usar processadores e threads separados para renderizar as exibições frontal, traseira e lateral.
Um thread pode ter apenas um contexto de renderização atual e ativo. Ao usar vários threads e vários contextos de renderização, você deve ter cuidado para sincronizar o uso deles. Por exemplo, use apenas um thread para chamar SwapBuffers depois que todos os threads terminarem de desenhar.