최근에 여러 컨텍스트에서 버텍스 배열 객체 및 프레임 버퍼 객체와의 공유 문제를 해결하는 방법에 대한 질문을 여러 차례 사용하면 두통이 더 심해질 것이라고 확신했습니다. 솔루션.여러 위젯에 대해 하나의 컨텍스트를 사용하는 Qt 및 OpenGL
나는 Qt를 사용하고 있으며, 현재 나의 셋업은 리소스를 공유하기 위해 내가 볼 수있는 QGLWidget의 생성자에서 사용하는 하나의 보이지 않는 QGLWidget을 가지고 있다는 것이고, 나는이 컨텍스트에서 특정 것들을 공유 할 수 없다는 것을 잘 받아 들인다.
단일 컨텍스트를 사용하여 다른 모든 위젯을 렌더링 할 수있는 솔루션을 찾고 싶습니다. this question은 공유하려는 QGLContext를 전달하는 QGLWidget 생성자를 사용하는 것을 말합니다. 그러나 이것은 아닙니다. 하나의 공통 컨텍스트를 사용하는 대신 하나의 QGLWidget에서 사용할 컨텍스트를 설정하고 두 번째 위젯에서이 컨텍스트를 사용하려고하면 qWarning이 호출되어 QGLContext가 전달할 위젯을 참조해야 함을 알립니다 .
내 응용 프로그램의 목표는 다른 장면을 렌더링하면서도 동일한 컨텍스트를 공유하는 2 개의 별도 GUI를 갖는 것입니다. 현재 저는 장면을 편집하여 게임 엔진에 사용할 파일에 저장하는 'World'편집기가 있습니다. 또한 UDK의 Material 편집기와 비슷한 자료를 그래픽으로 편집 할 수있는 'Material'편집기가 있습니다. OpenGL을 사용하는 미리보기 창입니다.
이상적으로는 편집기의 각 부분에 대해 별도의 프로그램을 보유하는 대신 탭으로 이동 가능한 하나의 통합 게임 편집기를 갖는 현재의 설계를 유지하고 싶습니다.
괜찮은 해결책 인 것처럼 보였던 유일한 점은 QGraphicsView를 사용하고 QGLWidget을 뷰포트로 설정하는 것이었지만, 전혀 작동하지 않는 것 같습니다. 나는 기본 프리미티브를 렌더링 할 수 있지만, 더 많은 것은 무너져 버린다.
이 OpenGL Widgets에 대한 경험이있는 사람이 있습니까? 그렇다면 목표 달성을 위해 취한 프로세스에 대해 설명해주십시오.
당신이 너무 많은 문제, 나는이 같은, 그래서 몇 가지 상황을 공유 할 CAD와 같은 응용 프로그램을 짓고 있어요 발생하는 이유는 아주 이해가 안
QGraphicsView를 지속적으로 사용하고 있으며 실제로 잘 작동합니다. 그것의 문제점은 무엇입니까? –
QGraphicsScene을 사용하여 QGraphicsView를 만든 다음 QGraphicsView 뷰포트를 파생 된 QGLWidget으로 설정합니다. 내 QGLWidget의 페인트 기능에서 기본 프리미티브를 렌더링하면 작동하지만 셰이더를 사용하여 무언가를 렌더링하려고하면 작동하지 않습니다. 내가 줄을 주석으로 처리하고 QGLWidget으로 QGraphicsView 위젯을 교체하면 모든 것이 잘 작동하고 그래픽보기와 함께 사용하는 것처럼 보입니다 – user1294021
실제로 다른 QGLWidgets도 작동하지 않습니다. – user1294021