Condividi tramite


Strategie di disegno OpenGL multithread

La GDI non supporta più thread. È necessario usare un contesto di dispositivo distinto e un contesto di rendering distinto per ogni thread. Ciò tende a limitare i vantaggi delle prestazioni dell'uso di più thread con sistemi a processore singolo che eseguono applicazioni OpenGL. Tuttavia, esistono modi per usare thread con un singolo sistema di processore per aumentare notevolmente le prestazioni. Ad esempio, è possibile usare un thread separato per passare chiamate di rendering OpenGL all'hardware 3D dedicato.

I sistemi multiprocessing simmetrici (SMP) possono trarre vantaggio notevolmente dall'uso di più thread. Una strategia ovvia consiste nell'usare un thread separato per ogni processore per gestire il rendering OpenGL in finestre separate. Ad esempio, in un'applicazione di simulazione di volo è possibile usare processori e thread separati per eseguire il rendering delle visualizzazioni frontali, indietro e lato.

Un thread può avere un solo contesto di rendering corrente e attivo. Quando si usano più thread e più contesti di rendering, è necessario prestare attenzione alla sincronizzazione dell'uso. Ad esempio, usare un thread solo per chiamare SwapBuffers dopo il completamento del disegno di tutti i thread.