Spec-Zone.ru › Qt 6.0

Класс 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 }
флаги 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

Статические открытые члены

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)

Устанавливает желаемое количество сэмплов на пиксель при включенном сэмплировании.

См. также 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.0/qsurfaceformat.html

Spec-Zone.ru

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