Как я могу проверить, что мое приложение qt будет работать с OpenGL2.0 и GLSL? [Дубликат]

В моем случае это имело символическую ссылку для 404-го файла, и мой Tomcat не был настроен для разрешения символических ссылок.

5
задан Paul Masri-Stone 7 December 2016 в 23:13
поделиться

1 ответ

Чтобы обнаружить версию OpenGL

Если вы хотите применить определенную версию OpenGL

  • , установите опцию в программном обеспечении (см. Пример ниже) для desktop / native, либо установите для переменной среды QT_OPENGL значение desktop, либо установите атрибут приложения к Qt::AA_UseDesktopOpenGL для ANGLE, либо установите для переменной среды QT_OPENGL значение angle, либо установите для атрибута приложения значение Qt::AA_UseOpenGLES для рендеринга программного обеспечения, либо установите для переменной среды QT_OPENGL значение software, либо установите атрибут приложения к Qt::AA_UseSoftwareOpenGL
  • создает статическую сборку Qt с использованием опций configure для установки реализации OpenGL, которую вы хотите (но помните о правилах лицензирования Qt ) для desktop / native, include -opengl desktop для ANGLE, не включайте опцию -opengl; это потому, что по умолчанию есть также -opengl dynamic, который позволяет Qt выбрать лучший вариант. Это было введено в Qt 5.4. Если вы хотите эту опцию, но не нуждаетесь в статической сборке по любой другой причине, нет необходимости создавать статическую сборку, так как предварительно созданные двоичные файлы используют эту опцию с Qt 5.5. есть и другие варианты, которые вы можете изучить в Qt для Windows - Требования . Хотя это специальная страница для Windows, большая часть информации о настройке OpenGL для Qt содержится здесь. [Вероятно, потому что большинство проблем рендеринга OpenGL находятся на платформе Windows!) [/ ​​G13]

Пример кода

#include <QGuiApplication>
//...

int main(int argc, char *argv[])
{
    // Set the OpenGL type before instantiating the application
    // In this example, we're forcing use of ANGLE.

    // Do either one of the following (not both). They are equivalent.
    qputenv("QT_OPENGL", "angle");
    QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);

    // Now instantiate the app
    QGuiApplication app(argc, argv);
    //...

    return app.exec();
}

(благодаря peppe для начальных ответов в комментариях выше и благодаря user12345 для ссылки в блоге)

1
ответ дан Paul Masri-Stone 20 August 2018 в 12:37
поделиться
  • 1
    glGetString (GL_VERSION) возвращает 0 на одной из моих машин (с Intel HD 3000), а OpenGL не отображается, хотя другое тестовое приложение для графической карты OpenGL отображает визуализированную сцену. Что я могу сделать? – falkb 9 May 2018 в 07:13
Другие вопросы по тегам:

Похожие вопросы: