Qt와 OpenGL 및 GLEW를 사용하여 쿼드의 텍스처를 매핑하고 렌더링합니다. 각 프레임의 텍스처를 변경하고 창을 지속적으로 업데이트하려고합니다. 계속 업데이트하려면 어떻게해야합니까?Opengl 윈도우를 계속 업데이트하십시오.
타이머를 추가하고 슬롯에 신호 업데이트 기능을 연결하여 주석에 언급 된대로 문제가 해결되었습니다.
Qt와 OpenGL 및 GLEW를 사용하여 쿼드의 텍스처를 매핑하고 렌더링합니다. 각 프레임의 텍스처를 변경하고 창을 지속적으로 업데이트하려고합니다. 계속 업데이트하려면 어떻게해야합니까?Opengl 윈도우를 계속 업데이트하십시오.
타이머를 추가하고 슬롯에 신호 업데이트 기능을 연결하여 주석에 언급 된대로 문제가 해결되었습니다.
qt를 사용하여 창을 만들고 마우스가 움직이는 것처럼 이벤트를 관리하는 경우 창을 다시 그리기 전에 이벤트가 발생할 때까지 응용 프로그램이 대기 할 수 있습니다. 난 당신 QTimer
개체를 사용하여 업데이트 기능에 시간 초과 신호를 연결할 수있을 것 같아요.
일부 waitEvent()
기능으로 이벤트를 처리하는 경우 비 차단 버전으로 변경하십시오.
'frameSwapped'의 신호가 더 좋을 수 있습니다. – Inline
'frameSwapped'는'QQuickWindow'의 신호입니다. 우리가 이벤트를 사용하고 있는지 알 수 없습니다. – Shumush
QGLWidget을 사용하여 paintGL의 끝에 업데이트 만 추가하면 렌더링이 계속 강제 실행되지만 좋은 해결책입니까? – user3178756
버퍼를 바꾸려면 각 프레임마다 특정 스왑 함수 (wglSwapBuffers, glXSwapBuffers 등)를 호출하고 vsync가 비활성화되어 있어야합니다. 창 크기를 조정하게하면 열려있는 gl 특정 질문이 아니라는 의미이며, 이는 또한 창 시스템에 달려 있습니다.
"지속적으로 창을 업데이트"한다는 것은 무엇을 의미합니까? – Shumush
텍스처를로드하여 표시 한 다음 두 번째 텍스처를로드하고 표시하는 등의 작업을 수행하려고합니다. 이제는 마우스가 움직일 때마다 창을 업데이트합니다. Qt와 OpenGL도 사용하고 있습니다. – user3178756
그러면 이벤트를 기다리거나 이벤트를 폴링하는 경우 메인 루프를 살펴 봐야합니다. qt는 기본적으로 이벤트를 대기하므로 루프를 차단합니다. 그러나 나는 확실하지 않다. – Shumush