다중 스레드 OpenGL 그리기 전략
GDI는 여러 스레드를 지원하지 않습니다. 각 스레드에 대해 고유한 디바이스 컨텍스트 및 고유한 렌더링 컨텍스트를 사용해야 합니다. 이는 OpenGL 애플리케이션을 실행하는 단일 프로세서 시스템에서 여러 스레드를 사용할 때의 성능 이점을 제한하는 경향이 있습니다. 그러나 단일 프로세서 시스템에서 스레드를 사용하여 성능을 크게 높이는 방법이 있습니다. 예를 들어 별도의 스레드를 사용하여 OpenGL 렌더링 호출을 전용 3차원 하드웨어에 전달할 수 있습니다.
대칭 SMP(다중 처리) 시스템은 여러 스레드를 사용하면 큰 이점을 얻을 수 있습니다. 명백한 전략은 각 프로세서에 대해 별도의 스레드를 사용하여 별도의 창에서 OpenGL 렌더링을 처리하는 것입니다. 예를 들어 플라이트 시뮬레이션 애플리케이션에서는 별도의 프로세서와 스레드를 사용하여 전면, 후면 및 측면 보기를 렌더링할 수 있습니다.
스레드에는 현재 활성 렌더링 컨텍스트가 하나만 있을 수 있습니다. 여러 스레드와 여러 렌더링 컨텍스트를 사용하는 경우 사용을 동기화하는 데 주의해야 합니다. 예를 들어 모든 스레드가 그리기를 완료한 후에는 하나의 스레드만 사용하여 SwapBuffers 를 호출합니다.