Spec-Zone.ru › Qt 6.0

Класс QOpenGLVersionFunctionsFactory

Предоставляет доступ к функциям OpenGL для указанной версии и профиля. Подробнее...

Заголовок: #include <QOpenGLVersionFunctionsFactory>
CMake: find_package(Qt6 COMPONENTS OpenGL REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::OpenGL)
qmake: QT += opengl
С момента: Qt 6.0
  • Список всех членов, включая унаследованные

Статические публичные члены

QAbstractOpenGLFunctions * get(const QOpenGLVersionProfile &versionProfile = QOpenGLVersionProfile(), QOpenGLContext *context = nullptr)
TYPE * get(QOpenGLContext *context = nullptr)

Подробное описание

Документация по членам-функциям

[static] QAbstractOpenGLFunctions *QOpenGLVersionFunctionsFactory::get(const QOpenGLVersionProfile &versionProfile = QOpenGLVersionProfile(), QOpenGLContext *context = nullptr)

Возвращает указатель на объект, обеспечивающий доступ ко всем функциям для versionProfile контекста context. Нет необходимости вызывать QAbstractOpenGLFunctions::initializeOpenGLFunctions(), пока context является текущим. Также возможно вызвать эту функцию, когда context не является текущим, но в этом случае ответственность за правильную инициализацию лежит на вызывающей стороне, и необходимо затем вызвать QAbstractOpenGLFunctions::initializeOpenGLFunctions().

Обычно используется шаблонная версия этой функции для автоматического приведения результата к правильному типу.

[static] template <typename TYPE> TYPE *QOpenGLVersionFunctionsFactory::get(QOpenGLContext *context = nullptr)

Эта функция перегружает get().

Возвращает указатель на объект, обеспечивающий доступ ко всем функциям для версии и профиля данного контекста. Нет необходимости вызывать QAbstractOpenGLFunctions::initializeOpenGLFunctions(), пока context является текущим. Также возможно вызвать эту функцию, когда context не является текущим, но в этом случае ответственность за правильную инициализацию лежит на вызывающей стороне, и необходимо затем вызвать QAbstractOpenGLFunctions::initializeOpenGLFunctions().

Обычно используется шаблонная версия этой функции для автоматического приведения результата к правильному типу.

auto funcs = QOpenGLVersionFunctionsFactory::get<QOpenGLFunctions_3_3_Core>(context);
if (!funcs) {
    qFatal("Could not obtain required OpenGL context version");
}

Возможен запрос объекта функций для другой версии и профиля, чем тот, для которого был создан контекст. Для этого либо используйте шаблонную версию этой функции, указав желаемый тип объекта функций в качестве параметра шаблона, либо передайте объект QOpenGLVersionProfile в качестве аргумента в нешаблонную функцию.

Обратите внимание, что запросы объектов функций для других версий или профилей могут завершиться неудачей, и в этом случае будет возвращено nullptr. Ситуации, в которых создание объекта функций может завершиться неудачей, включают в себя невозможность удовлетворить запрос из-за запроса функций, отсутствующих в версии или профиле данного контекста. Например:

  • Запрос объекта функций профиля 3.3 core будет успешным.
  • Запрос объекта функций профиля 3.3 compatibility завершится неудачей. Мы не сможем разрешить устаревшие функции.
  • Запрос объекта функций профиля 4.3 core завершится неудачей. Мы не сможем разрешить новые функции ядра, введённые в версиях 4.0-4.3.
  • Запрос объекта функций 3.1 будет успешным. В 3.1 нет ничего, чего нет также в 3.3 core.

Обратите внимание, что при создании объекта функций с помощью этого метода контекст QOpenGLContext сохраняет владение объектом. Это позволяет кэшировать и совместно использовать объект.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qopenglversionfunctionsfactory.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API