초당 여러 번 업데이트되고 OpenGL을 사용하여 그려지는 여러 (16-32) 줄거리로 구성된 응용 프로그램을 작성하고 있습니다. 지금까지 GLUT를 사용하여 플롯의 프로토 타입 제작을 대부분 중단했습니다. 그러나 QT와 같은 완전한 프레임 워크 프레임 워크를 채택하고 싶습니다. 테스트 QGLWidget을 작성할 준비가되었습니다.C++에서 단일 OpenGL 컨텍스트가있는 다중 QGLWidgets
시작하기 전에 여러 개의 QGLWidgets가 단일 OpenGL 컨텍스트를 공유 할 수 있는지 알아 보려합니다. 그렇다면 위젯간에 OpenGL 컨텍스트를 공유 할 때 추적해야 할 세부 사항이 있습니까?
개별 플롯은 매우 간단합니다. 그것들은 분산 형 플롯의 집합이며 공유 할 필요가있는 데이터는 없습니다 (PBO, VBO, FBO). 많은 양의 리소스가 각 OpenGL 컨텍스트에 할당되고 컨텍스트간에 전환하는 데 비용이 많이 듭니다. 이 경우 모든 위젯간에 공유되는 단일 컨텍스트를 갖는 것이 바람직합니까? – slayton
@slayton : 컨텍스트 전환에 드는 비용은 리소스가 변경된 것입니다. 하나의 리소스가 항상 변경됩니다 : 창. 그러나 컨텍스트의 데이터가 공유되면 상황이 그렇게 나쁘지 않습니다. 또한 애니메이션에서 이미지가 생성되는 실시간 렌더링 응용 프로그램에서는 컨텍스트 전환에 드는 비용이 더 많이 필요하다는 점도 이해해야합니다. 귀하의 경우에 당신은 다소 단순한 플롯을 가지고 있으며 아마도 교환 할 텍스처가 없을 것입니다. – datenwolf
개별 QGLWidgets가 모두 동일한 창에 포함되어 있으면 각 컨텍스트 전환과 함께 해당 리소스가 변경됩니까? OpenGL은 os에 의해 그려지는 윈도우와 다른 윈도우 리소스를 가지고 있습니까? 또는 각 컨텍스트에 동일한 리소스에 대한 링크가 있습니까? – slayton