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