2009-05-18 6 views
0

기본적으로 GDI +를 사용하기 위해 설정되어있는 오프 스크린 DC로 렌더링되도록 호출되고 있습니다. DC와 OpenGL 컨텍스트를 연결하려고하면 오류가 발생하지만 오류가 발생하지 않습니다. SetPixelFormat도 실패합니다 (아마도 이미 설정 되었기 때문일 수 있습니다). 오류가 아닌 0을 반환합니다.이미 GDI +를 사용하는 창에서 OpenGL을 사용할 수 있습니까?

누군가 다른 사람이 GDI +를 사용하는 창에 대한 오프 스크린 컨텍스트와 같은 상황에서 OpenGL 컨텍스트를 만들고 OpenGL을 사용하여 렌더링 할 수 있는지 여부를 알 수 있습니까? (가능한 경우 그리고, 왜 wglCreateContext 실패 될 수 있을까요?)

답변

1

이 문서는 GDI 창 후크 할 모든 단계를 보여줍니다 본질적으로 http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=01

을, 당신은에 :

  1. 설정 픽셀 포맷 장치 공동의 윈도우의 도면 영역의 디바이스 컨텍스트를 가져옵니다 등록 창
  2. 을 창
  3. 만들기 NTEXT
  4. 전화 wglCreateContext
  5. 전화 wglMakeCurrent
  6. 디스플레이 창

이미 장치 컨텍스트에 액세스 할 수있는 경우, 처음 두 단계를 건너 뜁니다.

귀하의 경우에는 필요한 모든 것이 wglMakeCurrent인지 확인할 수 있습니다. 그렇지 않으면 발생한 오류 및 동작에 대한 자세한 정보를 게시 할 수 있습니다.

+0

문제는 이미 DC (끄기 장치 컨텍스트)를 사용하고 있는데, 그릴 필요가있는 창을 참조하지만, 내 SetPixelFormat처럼 오류 메시지가 나타나지 않아 wglCreateContext가 실패합니다. 문제없이 새 OpenGL 창을 만들 수 있지만 문제의 응용 프로그램에서 나에게 주어진 DC를 사용하려고합니다 ... –

+0

어떻게 실패하고 있는지 어떻게 알 수 있습니까? 대가로 어떤 종류의 오류 또는 코드를 받고 있습니까? 어떤 이상한 행동이나 그냥 그리지 않는거야? –

+0

OpenGL 또는 Windows 시스템에서 오류 코드가 없습니다. 유효한 HGLRC 대신 0을 반환하기 때문에 작동하지 않는다는 것을 알고 있습니다. –

관련 문제