So gibt es zwei PCs mit Windows 8.1 x64. First hat Qt 5.7 SDK installiert, das zweite nicht. Auf dem ersten PC des folgenden C++ QT5 Code funktioniert erfolgreich:Qt OpenGL Framebuffer erstellt an einem PC, schlägt aber an einem anderen
int big_width = 1392;
int big_height = 1040;
int small_width = 696;
int small_height = 520;
format.setSamples(4);
format.setAttachment(QGLFramebufferObject::Depth);
framebuffer_big = new QGLFramebufferObject(big_width, big_height, format);
framebuffer_small = new QGLFramebufferObject(small_width, small_height, format);
Und am zweiten PC ich folgende in Windows-Konsole gucke:
[qglframebufferobject.cpp line 549] GL Error: 1280
QGLFramebufferObject: Framebuffer incomplete attachment.
QGLFramebufferObject: Framebuffer incomplete attachment.
QGLFramebufferObject: Framebuffer incomplete attachment.
[qglframebufferobject.cpp line 549] GL Error: 1280
QGLFramebufferObject: Framebuffer incomplete attachment.
QGLFramebufferObject: Framebuffer incomplete attachment.
QGLFramebufferObject: Framebuffer incomplete attachment.
So verbessern ich Video-Treiber auf dem zweiten PC und es hatte keine Wirkung. Und natürlich werden einige erforderliche DLLs zur Verfügung gestellt.
Die Frage ist das: Wie die oben aufgeführten Fehler am zweiten PC zu beheben?
Versuchen Sie in beiden Fällen, die von Ihnen verwendete openglVersion anzuzeigen. In der zweiten, was append, wenn Sie auch eine colorAttachment hinzufügen –
@DrackoonD Ich versuchte 'qDebug() << QString :: fromStdString (Std :: String (reinterpret_cast (glGetString (GL_VERSION)))); 'auf beiden PCs. Zuerst habe ich '" 4.5.0 NVIDIA 365.19 "'. Am zweiten PC gab es den Untergang des Programms: 'termiante nach dem Werfen einer Instanz von 'std :: logic_error' was(): basic_string :: _ M_construct null nicht gültig Diese Anwendung hat die Runtime auf ungewöhnliche Weise angefordert. Bitte kontaktieren Sie das Support-Team der Anwendung für weitere Informationen. Ich habe keine Ahnung, was ein Problem verursachen könnte. Irgendwelche Vorschläge? –