Qt5를 최신 OpenGL에서 실행할 수 있다는 유망한 언급을 보았습니다. QQuickView를 OpenGL 4.1 코어 (MacBook과 함께 OSX 10.9에서 최신 버전 지원)로 설정하려면 다음 코드를 사용하고 있습니다.OpenGL 4.1 및 Qt 5의 심각한 렌더링 문제
QSurfaceFormat sf = g_mainView->format();
sf.setProfile(QSurfaceFormat::CoreProfile);
sf.setVersion(4, 1);
g_mainView->setFormat(sf);
주요 문제. 첫째, 텍스트 렌더링을 시도 할 때 앱이 완전히 중단됩니다. QML에 이미지, 사각형 등만 있으면 조각 쉐이더 오류가 발생합니다.
QOpenGLShader::compile(Fragment): ERROR: 0:1: '' : #version required and missing.
ERROR: 0:5: 'varying' : syntax error syntax error
*** Problematic Fragment shader source code ***
#define lowp
#define mediump
#define highp
varying highp vec2 qt_TexCoord0;
uniform highp float qt_Opacity;
uniform lowp sampler2D source;
uniform lowp sampler2D maskSource;
void main(void) {
gl_FragColor = texture2D(source, qt_TexCoord0.st) * (texture2D(maskSource, qt_TexCoord0.st).a) * qt_Opacity;
}
***
QQuickCustomMaterialShader: Shader compilation failed:
"ERROR: 0:1: '' : #version required and missing.
ERROR: 0:5: 'varying' : syntax error syntax error
"
Qt5.3은 최신 OpenGL에서 아직 준비되지 않았습니까? 아니면 간단히 잘못 설정하고 있습니까? OpenGL 4를 사용하여 내 자신의 OpenGL 그래픽 창을 임베드하고 싶습니다. 그래서 제 가정은 GL 4에서도 실행중인 응용 프로그램이 필요하다는 것입니다. 다른 방법이 있습니까?
이 코드베이스는 Linux에서 컴파일됩니다. 동일한 표면 포맷 코드를 테스트했습니다. 핵심 프로필을 사용하여 폭탄을 터뜨렸지 만 호환성을 사용하여 작동합니다. Qt 5.2 이상이 코어와 함께 작동해야한다고 생각했습니다. 이 동영상의 Sean의 댓글 https://www.youtube.com/watch?v=YqlaKY0a1hg를 참조하십시오. 내가 무엇을해야 하나? Mac은 현대 gl과 호환성 프로파일을 제공하지 않습니다. – Evan
이 문제는 5.4, Windows가 아닌 Windows에 존재하며 호환성 프로파일을 반환합니다. – emailhy
Mac 및 Linux 상자에서 여전히 QGraphicalEffects로 렌더링 문제가 있습니다. 그것에 관한 버그를 열었습니다 : https://bugreports.qt-project.org/browse/QTBUG-42107 5.3에서 추락 한 컨트롤을 사용할 수 있습니다. 몇 주 전에 게시 된 베타 버전입니다. – Evan