2009-07-09 2 views
1

메인 윈도우의 하위 창으로 OpenGL 윈도우가있는 애플리케이션이 있습니다.OpenGL 창 위 윈도우 그리기

OpenGL 창 위에 대화 상자를 표시하면 그리지 않습니다. 마치 WM_PAINT 메시지를받지 않는 것과 같습니다. 대화 상자의 제목 표시 줄 위치를 추측 할 수 있으면 드래그 할 수 있으며 여전히 응답합니다.

나는 이것이 막연한 질문 일 수 있다는 것을 알고 있지만 다른 누군가가 이런 종류의 행동을 전에 보았고 해결책을 알고 있는지 궁금해하고 있었습니까?

픽셀 형식 설명자가 차이를 만들지 궁금했는데 PFD_DRAW_TO_WINDOW이 있었지만 PDF_DRAW_TO_BITMAP으로 변경해도 아무런 차이가 없었습니다. 내가 뭘 봐야하는지 잘 모르겠다.

답변

1

버거. 모든 세부 사항을 제시해야합니다. Parallels를 사용하여 Mac OS X의 가상 시스템에서 Windows를 실행했습니다. Parallels 3에서 4로 업그레이드하면 모든 것이 잘 작동합니다. Parallels 비디오 드라이버 문제가 의심됩니다.

제안에 답변 해 주신 모든 분들께 감사드립니다.

0

OpenGL 창이 지속적으로 렌더링되고 있습니까? 3D 하드웨어가 단순히 대화 상자를 오버 드로하는 오버레이로 렌더링하는 것일 수 있습니다. 메인 윈도우와 겹치게 대화 상자를 배치한다면, 그 중 일부를 볼 수 있습니까?

렌더링을 주 디스플레이에 일시 중지하여 결과에 영향을 미치는지보십시오.

당신은 또한 당신의 창 스타일이 결과가 잘립니다 보장 있는지 확인해야합니다 ...

cs.style |= WS_CLIPSIBLINGS | WS_CLIPCHILDREN ; 

가 많이 포함과 같이,이 MSDN 문서에서 언급 된 모든 항목이 있지만 확인해야합니다 창에서 OpenGL 렌더링을 올바르게 수행하기위한 기본 사항.

http://msdn.microsoft.com/en-us/library/ms970745.aspx

+0

감사합니다. 유용한 링크. –

0

당신은 오버레이를 전환 할 필요가있다. 그것은 스왑 대신에 복사하기위한 버퍼 백 제시 방식을 강요함으로써 수행 될 수있다.

사용 wglChoosePixelFormatARB 및 매개 변수 중 하나가 값 WGL_SWAP_COPY_ARB

0

이 5 월 바보 보인다와

WGL_SWAP_METHOD_ARB 일해야하지만 당신은 확실히 당신의 OpenGL 창은 "최상위"플래그하지 않는거야?

대화 상자가 창 테두리 또는 OpenGL 렌더링 사각형 바로 뒤에 표시되지 않습니까?

+0

아니요, 그것은 최상위가 아니며 그렇습니다. 전체 창이 아니라 OpenGL 렌더링 사각형 만 문제였습니다. (그러나, 솔루션에 대한 내 대답을 참조하십시오!) –