Qt 5.4, QtQuick 2.4를 사용하고 있습니다.원시 OpenGL을 QtQuick 응용 프로그램으로 렌더링하려고하면 QQuickWindow :: setClearBeforeRendering이 작동하지 않는 것 같습니다.
기본적으로 원시 OpenGL을 QtQuick/QML로 작성된 응용 프로그램으로 렌더링하고 싶습니다. QQmlApplicationEngine
을 사용하는 동안 기본적으로 OpenGL을 렌더링하고 싶습니다.
내가 완료 한 주요 튜토리얼은 (겉으로보기에는) 꽤 표준적인 것으로, here입니다.
그러나이 자습서에서는 QQmlApplicationEngine
대신 QQuickView
을 사용하여 QML UI를로드합니다. QQmlApplicationEngine
을 사용하도록 코드를 변경하면 GL 렌더링이 더 이상 작동하지 않으며 실제로 이유를 이해할 수 없습니다.
this GitHub의 저장소의 코드가 QQmlApplicationEngine를 사용하여 QtQuick 응용 프로그램에 원시의 OpenGL을 그릴 약속, 심지어는이 약속을 유지하기 위해 관리하지만 QQuickWindow::afterRendering
에 접선에 의해 그렇게 (squircle.cpp
라인 79 참조). 이 신호/슬롯 연결이 QQuickQindow::beforeRendering
에 후크하도록 변경되면 장면의 GL 부분이 다시 렌더링되지 않은 것으로 나타납니다. IMO는 내가 가지고있는 문제를 재현하는 가장 단순한 예입니다 (일부 상용구를 제외하고).
QQuickWindow::clearBeforeRendering
(올바르게) false (동일한 파일의 86 행)로 설정됩니다.
내가 누락 된 항목이 있습니까?
GitHub의 샘플이 제대로 작동하지 않습니다. 'Hello OpenGL'레이블이 표시되지 않습니다. –