diff --git a/OSBindings/Qt/main.cpp b/OSBindings/Qt/main.cpp index b8e70c547..0a32fc02f 100644 --- a/OSBindings/Qt/main.cpp +++ b/OSBindings/Qt/main.cpp @@ -8,10 +8,17 @@ int main(int argc, char *argv[]) // QApplication instance is mandatory on some platforms ... when an // OpenGL core profile context is requested." QSurfaceFormat format; + +#ifndef APPLE + format.setVersion(3, 0); + format.setRenderableType(QSurfaceFormat::RenderableType::OpenGLES); +#else format.setVersion(3, 2); format.setProfile(QSurfaceFormat::CoreProfile); +#endif format.setDepthBufferSize(0); format.setStencilBufferSize(0); + format.setAlphaBufferSize(0); QSurfaceFormat::setDefaultFormat(format); QApplication a(argc, argv); diff --git a/OSBindings/Qt/scantargetwidget.cpp b/OSBindings/Qt/scantargetwidget.cpp index daf2c6610..f6a87fa07 100644 --- a/OSBindings/Qt/scantargetwidget.cpp +++ b/OSBindings/Qt/scantargetwidget.cpp @@ -58,7 +58,11 @@ void ScanTargetWidget::paintGL() { if(producer) { isConnected = true; framebuffer = defaultFramebufferObject(); - scanTarget = std::make_unique(Outputs::Display::OpenGL::API::OpenGL32Core, framebuffer); + + const auto api = format().renderableType() == QSurfaceFormat::RenderableType::OpenGLES ? + Outputs::Display::OpenGL::API::OpenGLES3 : Outputs::Display::OpenGL::API::OpenGL32Core; + scanTarget = std::make_unique(api, framebuffer); + producer->set_scan_target(scanTarget.get()); producer = nullptr; }