Класс 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