Невозможно включить плоскость наложения, используя OpenGL в Qt5 - PullRequest
0 голосов
/ 05 июля 2018

Мы портируем код C ++ из Visual Studio 2008 / Qt4 в Visual Studio 2017 / Qt5 и не можем включить плоскость наложения с помощью OpenGL 4.5 с графической картой NVIDIA Quadro. Тот же код хорошо в VS2008 / Qt4. Ниже приведен небольшой пример программы.

int main (int argc, char *argv[])
{
    printf ("debug test1\n");
    QApplication a (argc, argv);

    QGLFormat glFmt;
    glFmt.setStereo (true);
    glFmt.setOverlay (true); 
    glFmt.setDoubleBuffer (true);

    QGLWidget *qtWid = new QGLWidget (glFmt);
    qtWid->show();
    printf ("version           %d.%d\n", qtWid->format().majorVersion(), qtWid->format().minorVersion());
    printf ("stereo            %d\n",    qtWid->format().stereo());
    printf ("hasOverlay        %d\n",    qtWid->format().hasOverlay());
    printf ("hasOpenGLOverlays %d\n",    qtWid->format().hasOpenGLOverlays());
    printf ("doubleBuffer      %d\n",    qtWid->format().doubleBuffer());

    return a.exec ();
}

В VS2017 / Qt5 hasOverlay и hasOpenGLOverlays всегда возвращают 0. В VS2008 / Qt4 они возвращают 1. Карта Quadro имеет плоскость аппаратного наложения и включена на панели управления NVIDIA.

Перестал ли OpenGL в QT5 поддерживать плоскость аппаратного оверлея?

...