문제

저는 U/I 프로그래밍을 처음 사용하고 OpenGL을 시작하려고합니다. GLUT로 새로운 OpenGL 창을 만드는 예제 프로그램을 실행하면 잘 작동합니다. 좋은. 그러나 다른 프로그램의 맥락에서, 장치 컨텍스트가 나에게 전달 된 이벤트 (Windows)에 응답 해야하는 다른 프로그램의 맥락에서, 그리고 내가 사용할 수 없었던 곳은 다음과 같습니다.

  1. 장치 컨텍스트는 언제 생성되고 파괴됩니까? 나에게 주어진 장치 컨텍스트 또는 그중 일부만 (그리고 어떻게 알 수 있습니까?)를 그릴 수 있습니까?

  2. 나만의 OpenGL 컨텍스트를 만들어서 사용하여 "현재"OpenGL 컨텍스트를 사용할 수 있습니까? 드로우 이벤트가 전송 될 때마다 컨텍스트를 다시 만들어야합니까?

기본적으로 내 질문은 내가 "Draw"이벤트를 보낸 상황이 주어지면 OpenGL 컨텍스트를 얼마나 자주 만들려고합니까? 이것이 장치 컨텍스트의 생성/파괴주기와 어떤 관련이 있습니까?

도움이 되었습니까?

해결책

일반적으로 일반적으로 단일 OpenGL 컨텍스트를 창, 특히 창에서 생각하는 것이 안전합니다.

장치 컨텍스트는 (일반적으로) 창 핸들 (HWND)에 매핑됩니다. 실제로 DC (HDC는 핸들)이지만 일반적으로 하나의 HDC를 단일 HWND와 연결합니다. Windows에서는 렌더링하려는 화면의 창을 기반으로 사용할 창이 생성됩니다.

일반적으로 응용 프로그램의 전체 런타임에 대해이 장치 컨텍스트를 재사용합니다. 다른 창으로 렌더링하려면 새 창 핸들에 대한 장치 컨텍스트 (HDC)를 생성해야합니다. 또한 오프 스크린 렌더링은 약간 다릅니다.이를 위해 호환 가능한 장치 컨텍스트를 생성하기 때문입니다.

귀하의 질문은 :

1) 렌더링을 원하는 창을 만들 때 장치 컨텍스트를 잡고 해당 창의 수명에 사용합니다.

2) 렌더링하는 창에 생성 된 장치 컨텍스트를 항상 사용하려고합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top