Spec-Zone.ru › Qt

Класс QSurfaceFormat

Класс QSurfaceFormat представляет формат QSurface. Подробнее...

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

Открытые типы

перечисление ColorSpace { DefaultColorSpace, sRGBColorSpace }
перечисление FormatOption { StereoBuffers, DebugContext, DeprecatedFunctions, ResetNotification, ProtectedContent }
флаги FormatOptions
перечисление OpenGLContextProfile { NoProfile, CoreProfile, CompatibilityProfile }
перечисление RenderableType { DefaultRenderableType, OpenGL, OpenGLES, OpenVG }
перечисление SwapBehavior { DefaultSwapBehavior, SingleBuffer, DoubleBuffer, TripleBuffer }

Общедоступные функции

QSurfaceFormat(const QSurfaceFormat &other)
QSurfaceFormat(QSurfaceFormat::FormatOptions options)
QSurfaceFormat()
QSurfaceFormat & operator=(const QSurfaceFormat &other)
~QSurfaceFormat()
int alphaBufferSize() const
int blueBufferSize() const
const QColorSpace & colorSpace() const
int depthBufferSize() const
int greenBufferSize() const
bool hasAlpha() const
int majorVersion() const
int minorVersion() const
QSurfaceFormat::FormatOptions options() const
QSurfaceFormat::OpenGLContextProfile profile() const
int redBufferSize() const
QSurfaceFormat::RenderableType renderableType() const
int samples() const
void setAlphaBufferSize(int size)
void setBlueBufferSize(int size)
void setColorSpace(const QColorSpace &colorSpace)
void setColorSpace(QSurfaceFormat::ColorSpace colorSpace)
void setDepthBufferSize(int size)
void setGreenBufferSize(int size)
void setMajorVersion(int major)
void setMinorVersion(int minor)
void setOption(QSurfaceFormat::FormatOption option, bool on = true)
void setOptions(QSurfaceFormat::FormatOptions options)
void setProfile(QSurfaceFormat::OpenGLContextProfile profile)
void setRedBufferSize(int size)
void setRenderableType(QSurfaceFormat::RenderableType type)
void setSamples(int numSamples)
void setStencilBufferSize(int size)
void setStereo(bool enable)
void setSwapBehavior(QSurfaceFormat::SwapBehavior behavior)
void setSwapInterval(int interval)
void setVersion(int major, int minor)
int stencilBufferSize() const
bool stereo() const
QSurfaceFormat::SwapBehavior swapBehavior() const
int swapInterval() const
bool testOption(QSurfaceFormat::FormatOption option) const
QPair<int, int> version() const

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

QSurfaceFormat defaultFormat()
void setDefaultFormat(const QSurfaceFormat &format)

Связанные нечлены

bool operator!=(const QSurfaceFormat &lhs, const QSurfaceFormat &rhs)
bool operator==(const QSurfaceFormat &lhs, const QSurfaceFormat &rhs)

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

Формат включает размер цветовых буферов, красного, зеленого и синего; размер альфа-буфера; размер буферов глубины и трафарета; и количество выборок на пиксель для многовыборочного сэмплирования. Кроме того, формат содержит параметры конфигурации поверхности, такие как профиль и версия OpenGL для рендеринга, нужно ли включить стерео-буферы и поведение при обмене.

Примечание: При устранении неполадок с контекстом или форматом окна может быть полезно включить категорию регистрации qt.qpa.gl. В зависимости от платформы это может вывести полезную отладочную информацию при инициализации OpenGL и конфигурации нативных визуальных или буферов кадра, к которым QSurfaceFormat сопоставляется.

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

перечисление QSurfaceFormat::ColorSpace

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

Константа Значение Описание
QSurfaceFormat::DefaultColorSpace 0 По умолчанию, неопределенное цветовое пространство.
QSurfaceFormat::sRGBColorSpace 1 Когда GL_ARB_framebuffer_sRGB или GL_EXT_framebuffer_sRGB поддерживаются платформой, и это значение задано, окно будет создано с буфером по умолчанию, способным обрабатывать sRGB. Обратите внимание, что некоторые платформы могут возвращать окна с буфером по умолчанию, способным обрабатывать sRGB, даже если это не запрошено явно.

перечисление QSurfaceFormat::FormatOptionфлаги QSurfaceFormat::FormatOptions

Это перечисление содержит параметры формата для использования с QSurfaceFormat.

Константа Значение Описание
QSurfaceFormat::StereoBuffers 0x0001 Используется для запроса стерео-буферов в формате поверхности.
QSurfaceFormat::DebugContext 0x0002 Используется для запроса отладочного контекста с дополнительной отладочной информацией.
QSurfaceFormat::DeprecatedFunctions 0x0004 Используется для запроса включения устаревших функций в профиль контекста OpenGL. Если не указано, вы должны получить контекст, совместимый с будущими версиями, без поддержки функций, помеченных как устаревшие. Требуется версия OpenGL 3.0 или выше.
QSurfaceFormat::ResetNotification 0x0008 Включает уведомления о сбросах контекста OpenGL. Статус затем можно запросить с помощью функции isValid() контекста. Обратите внимание, что отсутствие установки этого флага не гарантирует, что потеря состояния контекста никогда не произойдёт. Кроме того, некоторые реализации могут выбрать сообщение об ошибке независимо от этого флага. Платформы, которые поддерживают динамическое включение мониторинга потери контекста, например, Windows с WGL или Linux/X11 (xcb) с GLX, будут отслеживать статус в каждом вызове makeCurrent(). Смотрите isValid() для получения дополнительной информации об этом.
QSurfaceFormat::ProtectedContent 0x0010 Включает доступ к защищенному контенту. Это позволяет графическому процессору работать с защищенными ресурсами (поверхностями, буферами, текстурами), например, с защищенным DRM видеоконтентом. В настоящее время реализовано только для EGL.

Тип FormatOptions является typedef для QFlags<FormatOption>. Он хранит логическое ИЛИ комбинацию значений FormatOption.

перечисление QSurfaceFormat::OpenGLContextProfile

Это перечисление используется для указания профиля контекста OpenGL, в сочетании с QSurfaceFormat::setMajorVersion() и QSurfaceFormat::setMinorVersion().

Профили представлены в OpenGL 3.2 и выше и используются для выбора между ограниченным профилем ядра и профилем совместимости, который может содержать устаревшую поддерживающую функциональность.

Обратите внимание, что профиль ядра может по-прежнему содержать функциональность, которая устарела и запланирована на удаление в более новой версии. Для получения доступа к устаревшей функциональности для профиля ядра в заданной версии OpenGL можно использовать параметр формата QSurfaceFormat QSurfaceFormat::DeprecatedFunctions.

Константа Значение Описание
QSurfaceFormat::NoProfile 0 Версия OpenGL ниже 3.2. Для 3.2 и выше это то же самое, что и CoreProfile.
QSurfaceFormat::CoreProfile 1 Функциональность, устаревшая в версии OpenGL 3.0, недоступна.
QSurfaceFormat::CompatibilityProfile 2 Доступна функциональность из более ранних версий OpenGL.

перечисление QSurfaceFormat::RenderableType

Это перечисление определяет движок рендеринга для поверхности.

Константа Значение Описание
QSurfaceFormat::DefaultRenderableType 0x0 По умолчанию, неопределенный метод рендеринга.
QSurfaceFormat::OpenGL 0x1 Рендеринг с помощью настольного OpenGL.
QSurfaceFormat::OpenGLES 0x2 Рендеринг с помощью OpenGL ES 2.0.
QSurfaceFormat::OpenVG 0x4 Рендеринг с помощью Open Vector Graphics.

перечисление QSurfaceFormat::SwapBehavior

Это перечисление используется QSurfaceFormat для указания поведения обмена поверхностью. Поведение обмена в основном прозрачно для приложения, но оно влияет на такие факторы, как задержка рендеринга и пропускная способность.

Константа Значение Описание
QSurfaceFormat::DefaultSwapBehavior 0 По умолчанию, неопределенное поведение обмена платформы.
QSurfaceFormat::SingleBuffer 1 Используется для запроса однобуферного режима, что может привести к мерцанию при рендеринге OpenGL непосредственно на экран без промежуточного буфера.
QSurfaceFormat::DoubleBuffer 2 Как правило, это поведение обмена по умолчанию на настольных платформах, состоящее из одного заднего буфера и одного переднего буфера. Рендеринг выполняется в задний буфер, а затем задний и передний буферы обмениваются, или содержимое заднего буфера копируется в передний буфер, в зависимости от реализации.
QSurfaceFormat::TripleBuffer 3 Это поведение обмена иногда используется для снижения риска пропусков кадров, когда скорость рендеринга едва хватает для частоты обновления экрана. В зависимости от платформы это также может привести к немного более эффективному использованию графического процессора из-за улучшенного поведения конвейера. Тройной буферизация имеет затраты в виде дополнительного кадра потребления памяти и задержки и может не поддерживаться в зависимости от базовой платформы.

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

QSurfaceFormat::QSurfaceFormat(const QSurfaceFormat &other)

Создает копию other.

QSurfaceFormat::QSurfaceFormat(QSurfaceFormat::FormatOptions options)

Создает QSurfaceFormat с заданными параметрами формата options.

QSurfaceFormat::QSurfaceFormat()

Создает инициализированный по умолчанию QSurfaceFormat.

Примечание: По умолчанию запрашивается OpenGL 2.0, так как это обеспечивает наивысший уровень портативности между платформами и реализациями OpenGL.

QSurfaceFormat &QSurfaceFormat::operator=(const QSurfaceFormat &other)

Присваивает other этому объекту.

QSurfaceFormat::~QSurfaceFormat()

Уничтожает QSurfaceFormat.

int QSurfaceFormat::alphaBufferSize() const

Получить размер в битах альфа-канала цветового буфера.

См. также setAlphaBufferSize().

int QSurfaceFormat::blueBufferSize() const

Получить размер в битах синего канала цветового буфера.

См. также setBlueBufferSize().

[since 5.10] const QColorSpace &QSurfaceFormat::colorSpace() const

Возвращает цветовое пространство.

Эта функция была добавлена в Qt 5.10.

См. также setColorSpace().

[static, since 5.4] QSurfaceFormat QSurfaceFormat::defaultFormat()

Возвращает глобальный формат поверхности по умолчанию.

Если setDefaultFormat() не вызывается, это QSurfaceFormat, созданный по умолчанию.

Эта функция была добавлена в Qt 5.4.

См. также setDefaultFormat().

int QSurfaceFormat::depthBufferSize() const

Возвращает размер буфера глубины.

См. также setDepthBufferSize().

int QSurfaceFormat::greenBufferSize() const

Возвращает размер зеленого канала буфера цвета в битах.

См. также setGreenBufferSize().

bool QSurfaceFormat::hasAlpha() const

Возвращает true если размер буфера альфа-канала больше нуля.

Это означает, что поверхность может использоваться с эффектами частичной прозрачности на пиксельном уровне.

int QSurfaceFormat::majorVersion() const

Возвращает основную версию OpenGL.

Версия по умолчанию — 2.0.

См. также setMajorVersion().

int QSurfaceFormat::minorVersion() const

Возвращает второстепенную версию OpenGL.

См. также setMinorVersion().

[since 5.3] QSurfaceFormat::FormatOptions QSurfaceFormat::options() const

Возвращает текущие установленные параметры формата.

Эта функция была добавлена в Qt 5.3.

См. также setOption(), setOptions() и testOption().

QSurfaceFormat::OpenGLContextProfile QSurfaceFormat::profile() const

Возвращает конфигурированный профиль контекста OpenGL.

Это значение игнорируется, если запрошенная версия OpenGL меньше 3.2.

См. также setProfile().

int QSurfaceFormat::redBufferSize() const

Возвращает размер красного канала буфера цвета в битах.

См. также setRedBufferSize().

QSurfaceFormat::RenderableType QSurfaceFormat::renderableType() const

Возвращает тип рендерируемого объекта.

Выбор между настольным OpenGL, OpenGL ES и OpenVG.

См. также setRenderableType().

int QSurfaceFormat::samples() const

Возвращает количество образцов на пиксель при включенном сглаживании, или -1 при выключенном сглаживании. Значение по умолчанию — -1.

См. также setSamples().

void QSurfaceFormat::setAlphaBufferSize(int size)

Устанавливает желаемый размер альфа-канала буфера цвета в битах.

См. также alphaBufferSize().

void QSurfaceFormat::setBlueBufferSize(int size)

Устанавливает желаемый размер синего канала буфера цвета в битах.

См. также blueBufferSize().

[since 6.0] void QSurfaceFormat::setColorSpace(const QColorSpace &colorSpace)

Устанавливает предпочтительное цветовое пространство colorSpace.

Например, это позволяет запрашивать окна с буферами по умолчанию, которые поддерживают sRGB на платформах, которые это поддерживают.

Примечание: Если запрошенное цветовое пространство не поддерживается платформой, запрос игнорируется. Проверьте QSurfaceFormat после создания окна, чтобы убедиться, что запрос на цветовое пространство был выполнен.

Примечание: Этот параметр управляет возможностью обновления и смешивания в указанном цветовом пространстве в буфере по умолчанию окна. Сам по себе он не изменяет выходные данные приложения. Код отрисовки приложения всё равно должен использовать соответствующие вызовы OpenGL, чтобы включить обновление и смешивание в заданном цветовом пространстве вместо стандартных линейных операций.

Эта функция была добавлена в Qt 6.0.

См. также colorSpace().

[since 5.10] void QSurfaceFormat::setColorSpace(QSurfaceFormat::ColorSpace colorSpace)

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

Устанавливает цветовое пространство на одно из предопределённых значений.

Эта функция была добавлена в Qt 5.10.

См. также colorSpace().

[static, since 5.4] void QSurfaceFormat::setDefaultFormat(const QSurfaceFormat &format)

Устанавливает глобальный формат поверхности по умолчанию format.

Этот формат используется по умолчанию в QOpenGLContext, QWindow, QOpenGLWidget и подобных классах.

Он всегда может быть переопределён на уровне экземпляра с помощью функции setFormat() соответствующего класса. Однако часто удобнее установить формат для всех окон в начале приложения. Это также гарантирует правильное поведение в случаях, когда требуются общие контексты, поскольку установка формата через эту функцию гарантирует, что все контексты и поверхности, даже те, которые создаются внутри Qt, будут использовать один и тот же формат.

Примечание: При установке Qt::AA_ShareOpenGLContexts настоятельно рекомендуется вызвать эту функцию до создания QGuiApplication или QApplication. В противном случае format не будет применён к глобальному общему контексту, и впоследствии могут возникнуть проблемы с совместным использованием контекстов.

Эта функция была добавлена в Qt 5.4.

См. также defaultFormat().

void QSurfaceFormat::setDepthBufferSize(int size)

Устанавливает минимальный размер буфера глубины на size.

См. также depthBufferSize().

void QSurfaceFormat::setGreenBufferSize(int size)

Устанавливает желаемый размер зеленого канала буфера цвета в битах.

См. также greenBufferSize().

void QSurfaceFormat::setMajorVersion(int major)

Устанавливает желаемую основную версию OpenGL.

См. также majorVersion().

void QSurfaceFormat::setMinorVersion(int minor)

Устанавливает желаемую второстепенную версию OpenGL.

Версия по умолчанию — 2.0.

См. также minorVersion().

[since 5.3] void QSurfaceFormat::setOption(QSurfaceFormat::FormatOption option, bool on = true)

Устанавливает параметр формата option, если on равно true; в противном случае очищает параметр.

Чтобы убедиться, что параметр был учтён, сравните фактический формат с запрошенным форматом после создания поверхности/контекста.

Эта функция была добавлена в Qt 5.3.

См. также setOptions(), options() и testOption().

[since 5.3] void QSurfaceFormat::setOptions(QSurfaceFormat::FormatOptions options)

Устанавливает параметры формата на options.

Чтобы убедиться, что параметр был учтён, сравните фактический формат с запрошенным форматом после создания поверхности/контекста.

Эта функция была добавлена в Qt 5.3.

См. также options() и testOption().

void QSurfaceFormat::setProfile(QSurfaceFormat::OpenGLContextProfile profile)

Устанавливает желаемый профиль контекста OpenGL profile.

Это значение игнорируется, если запрошенная версия OpenGL меньше 3.2.

См. также profile().

void QSurfaceFormat::setRedBufferSize(int size)

Устанавливает желаемый размер красного канала буфера цвета в битах.

См. также redBufferSize().

void QSurfaceFormat::setRenderableType(QSurfaceFormat::RenderableType type)

Устанавливает требуемый тип type для рендеринга.

Выбор между настольным OpenGL, OpenGL ES и OpenVG.

См. также renderableType().

void QSurfaceFormat::setSamples(int numSamples)

Устанавливает предпочтительное число выборок на пиксель при включённом многообразном сэмплировании в numSamples. По умолчанию многообразное сэмплирование отключено.

См. также samples().

void QSurfaceFormat::setStencilBufferSize(int size)

Устанавливает предпочтительный размер буфера трафарета в size бит.

См. также stencilBufferSize().

void QSurfaceFormat::setStereo(bool enable)

Если enable равно true, включает стерео-буферизацию; в противном случае отключает стерео-буферизацию.

Стерео-буферизация отключена по умолчанию.

Стерео-буферизация предоставляет дополнительные цветовые буферы для генерации изображений для левого и правого глаза.

См. также stereo().

void QSurfaceFormat::setSwapBehavior(QSurfaceFormat::SwapBehavior behavior)

Устанавливает поведение обмена поверхностью.

Поведение обмена определяет, требуется ли однократная, двойная или тройная буферизация. По умолчанию, DefaultSwapBehavior, задаёт поведение обмена платформы по умолчанию.

См. также swapBehavior().

void QSurfaceFormat::setSwapInterval(int interval)

Устанавливает предпочтительный интервал обмена. Интервал обмена определяет минимальное количество видеокадров, отображаемых перед выполнением обмена буфером. Это может использоваться для синхронизации рисования GL в окне с вертикальной частотой обновления экрана.

Установка значения interval равного 0 отключит вертикальную синхронизацию, любое значение больше 0 включит вертикальную синхронизацию. Установка interval в более высокое значение, например 10, приводит к наличию 10 вертикальных обновлений между каждым обменом буферами.

Значение интервала по умолчанию равно 1.

Изменение интервала обмена может быть не поддерживается на основной платформе. В этом случае запрос будет проигнорирован.

Функция была добавлена в Qt 5.3.

См. также swapInterval().

void QSurfaceFormat::setVersion(int major, int minor)

Устанавливает требуемые major и minor версии OpenGL.

Версия по умолчанию — 2.0.

См. также version().

int QSurfaceFormat::stencilBufferSize() const

Возвращает размер буфера трафарета в битах.

См. также setStencilBufferSize().

bool QSurfaceFormat::stereo() const

Возвращает true , если стерео-буферизация включена; в противном случае возвращает false. Стерео-буферизация отключена по умолчанию.

См. также setStereo().

QSurfaceFormat::SwapBehavior QSurfaceFormat::swapBehavior() const

Возвращает настроенное поведение обмена.

См. также setSwapBehavior().

int QSurfaceFormat::swapInterval() const

Возвращает интервал обмена.

Функция была добавлена в Qt 5.3.

См. также setSwapInterval().

bool QSurfaceFormat::testOption(QSurfaceFormat::FormatOption option) const

Возвращает true, если опция формата option установлена; в противном случае возвращает false.

Функция была добавлена в Qt 5.3.

См. также options().

QPair<int, int> QSurfaceFormat::version() const

Возвращает QPair<int, int>, представляющий версию OpenGL.

Полезно для проверки версий, например format.version() >= qMakePair(3, 2)

См. также setVersion().

Связанные нечлены

bool operator!=(const QSurfaceFormat &lhs, const QSurfaceFormat &rhs)

Возвращает true, если все опции двух объектов QSurfaceFormat lhs и rhs равны; в противном случае возвращает false.

bool operator==(const QSurfaceFormat &lhs, const QSurfaceFormat &rhs)

Возвращает true, если все опции двух объектов QSurfaceFormat lhs и rhs равны.

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

Spec-Zone.ru

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