렌더링 컨텍스트
OpenGL 렌더링 컨텍스트 는 모든 OpenGL 명령이 전달하는 포트입니다. OpenGL 호출을 만드는 모든 스레드에는 현재 렌더링 컨텍스트가 있어야 합니다. 렌더링 컨텍스트는 OpenGL을 Windows 창 시스템에 연결합니다.
애플리케이션은 렌더링 컨텍스트를 만들 때 Windows 디바이스 컨텍스트를 지정합니다. 이 렌더링 컨텍스트는 지정된 디바이스 컨텍스트가 참조하는 디바이스에서 그리기에 적합합니다. 특히 렌더링 컨텍스트는 디바이스 컨텍스트와 동일한 픽셀 형식을 입니다. 자세한 내용은 컨텍스트 함수 렌더링을 참조하세요.
이러한 관계에도 불구하고 렌더링 컨텍스트는 디바이스 컨텍스트와 동일하지 않습니다. 디바이스 컨텍스트는 Windows의 GDI(그래픽 구성 요소)와 관련한 정보를 포함합니다. 렌더링 컨텍스트에는 OpenGL과 관련된 정보가 포함됩니다. 디바이스 컨텍스트는 GDI 호출에서 명시적으로 지정해야 합니다. 렌더링 컨텍스트는 OpenGL 호출에서 암시적입니다. 렌더링 컨텍스트를 만들기 전에 디바이스 컨텍스트의 픽셀 형식을 설정해야 합니다.
OpenGL 호출을 만드는 스레드에는 현재 렌더링 컨텍스트가 있어야 합니다. 애플리케이션이 현재 렌더링 컨텍스트가 없는 스레드에서 OpenGL을 호출하는 경우 아무 일도 발생하지 않습니다. 호출에 영향을 주지 않습니다. 애플리케이션은 일반적으로 렌더링 컨텍스트를 만들고 스레드의 현재 렌더링 컨텍스트로 설정한 다음 OpenGL 함수를 호출합니다. OpenGL 함수 호출이 완료되면 애플리케이션은 스레드에서 렌더링 컨텍스트를 분리한 다음 렌더링 컨텍스트를 삭제합니다. 창에는 한 번에 여러 렌더링 컨텍스트가 그려지지만 스레드에는 현재 활성 렌더링 컨텍스트가 하나만 있을 수 있습니다.
현재 렌더링 컨텍스트에는 연결된 디바이스 컨텍스트가 있습니다. 해당 디바이스 컨텍스트는 렌더링 컨텍스트를 만들 때 사용한 것과 동일한 디바이스 컨텍스트일 필요는 없지만 동일한 디바이스를 참조하고 동일한 픽셀 형식을 가져야 합니다.
스레드에는 현재 렌더링 컨텍스트가 하나만 있을 수 있습니다. 렌더링 컨텍스트는 하나의 스레드에만 최신일 수 있습니다.