Spec-Zone.ru › Qt 6.1

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

Spec-Zone.ru

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