Spec-Zone.ru › Qt

Класс 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.2/qopenglversionfunctionsfactory.html

Spec-Zone.ru

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