Spec-Zone.ru › Qt 6.1

Класс 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
  • Список всех членов, включая унаследованные

Публичные типы

Перечисление ПространствоЦветов { ПространствоЦветовПоУмолчанию, sRGBПространствоЦветов }
Перечисление ПараметрФормата { СтереоБуферы, ОтладкаКонтекста, УстаревшиеФункции, УведомлениеОПерезагрузке }
Флаги ПараметрыФормата
Перечисление ПрофильКонтекстаOpenGL { БезПрофиля, ПрофильЯдра, ПрофильСовместимости }
Перечисление ТипОтображаемого { ТипОтображаемогоПоУмолчанию, OpenGL, OpenGLES, OpenVG }
Перечисление ПоведениеОбмена { ПоведениеОбменаПоУмолчанию, ОдноБуферный, ДвухБуферный, ТрехБуферный }

Публичные функции

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.

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

enum QSurfaceFormat::ColorSpace

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

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

enum QSurfaceFormat::FormatOptionflags 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().

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

enum 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.

enum QSurfaceFormat::RenderableType

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

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

enum 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)

Устанавливает желаемый тип рендерируемого объекта.

Выбор между настольной версией 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().

[since 5.3] 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().

[since 5.3] int QSurfaceFormat::swapInterval() const

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

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

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

[since 5.3] 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)

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

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.1/qsurfaceformat.html

Spec-Zone.ru

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