문제

창 안에 GLX가있는 OpenGL 컨텍스트를 만들고 싶습니다. 그러나 나는 그것이 전체 창 영역에 걸쳐있는 것을 원하지 않습니다. 대신, 그것은 하위 지역 만 포함해야합니다.

예를 들어, GLUT는이 동작에 대한 기능을 제공합니다. 또한 GTK+ 또는 QT와 같은 주요 툴킷은 X Windows의 하위 영역 인 GL 위젯을 제공합니다. 그러나 저수준에서 작업해야합니다.

GLXMAKECURRENT ()는 X 드로잉 식별자를 허용합니다. 그림을 창의 하위 영역으로 정의 할 수 있습니까? 아니면 컨텍스트를 창 영역에 바인딩하는 다른 방법이 있습니까?

GLX 참조 (블루 북)

편집 : 멋진 현상금이 추가되었습니다!

도움이 되었습니까?

해결책 2

나는이 유용한 정보를 발견했다 BSD 맨 페이지:

당신에게 중요한 거의 모든면에서, 하위 바람은 최상위 창과 같습니다. 창 ID가 있습니다. 자체 이벤트 콜백 세트가 있습니다. 당신은 그것에 렌더링 할 수 있습니다. 당신은 그것의 창조에 대한 통보를 받았습니다. ...

하위 창은 다른 창 (아마도 상단 창, 아마도 다른 하위 바람) 안에 산다. 이 때문에 일반적으로 자신의 창조물의 다른 창과 상호 작용하므로 창 관리자가 적용되지 않습니다. 이것은 최상위 창과 차이의 주요 소스입니다.

그래서 나는 인기있는 툴킷의 GL 위젯이 실제로 뚜렷한 (하위) 창으로 작용한다고 가정합니다. 흥미로운 부분은 이것이 창 관리자와 사용자에게 투명하다는 것입니다.

다른 팁

x 드로우 가능 (x drawable) 만 glxmakecurrent () 만 할 수 있지만 솔루션은 간단합니다. X 창에 대한 생각을 마치 마치 마치 응용 프로그램 인 것처럼 생각하지 마십시오. 각 X 응용 프로그램은 일반적으로 10 또는 100의 X Windows로 구성됩니다. 원하는 영역에서 자식 창을 만들고 그 안에 그리십시오.

또는 pixmap을 만들어 렌더링 한 다음 창의 영역으로 복사 할 수 있지만 느리게됩니다.

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