Spec-Zone.ru › Qt 5.14

Класс QSurfaceFormat

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

Заголовок: #include <QSurfaceFormat>
qmake: QT += gui
С момента: Qt 5.0

Этот класс был введён в Qt 5.0.

  • Список всех членов, включая унаследованные
  • Устаревшие члены

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

Перечисление Цветное пространство { DefaultColorSpace, sRGBColorSpace }
Перечисление Параметр формата { StereoBuffers, DebugContext, DeprecatedFunctions, ResetNotification }
Флаги Параметры формата
Перечисление Профиль контекста OpenGL { NoProfile, CoreProfile, CompatibilityProfile }
Перечисление Тип отображаемого объекта { DefaultRenderableType, OpenGL, OpenGLES, OpenVG }
Перечисление Поведение обмена { 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
QSurfaceFormat::ColorSpace 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(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 &a, const QSurfaceFormat &b)
bool operator==(const QSurfaceFormat &a, const QSurfaceFormat &b)

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

Формат включает размер цветовых буферов, красного, зеленого и синего; размер альфа-буфера; размер буферов глубины и стенок; и количество сэмплов на пиксель для многосэмплирования. Кроме того, формат содержит параметры конфигурации поверхности, такие как профиль и версия 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() контекста. Обратите внимание, что отсутствие установки этого флага не гарантирует, что потеря состояния контекста никогда не произойдет. Кроме того, некоторые реализации могут выбрать сообщение о потере контекста независимо от этого флага.

Тип FormatOptions является типом-синонимом для 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 Отрисовка с помощью Desktop 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().

QSurfaceFormat::ColorSpace QSurfaceFormat::colorSpace() const

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

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

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

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().

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().

void QSurfaceFormat::setColorSpace(QSurfaceFormat::ColorSpace colorSpace)

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

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

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

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

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

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

[static] void QSurfaceFormat::setDefaultFormat(const QSurfaceFormat &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().

void QSurfaceFormat::setOption(QSurfaceFormat::FormatOption option, bool on = true)

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

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

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

void QSurfaceFormat::setOptions(QSurfaceFormat::FormatOptions options)

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

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

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

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

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

Это значение игнорируется, если запрошенная версия 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)

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

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

void QSurfaceFormat::setStereo(bool enable)

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

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

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

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

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

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

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

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

END_OF_DOCUMENT_MARKER

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 &a, const QSurfaceFormat &b)

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

bool operator==(const QSurfaceFormat &a, const QSurfaceFormat &b)

Возвращает true если все параметры двух объектов QSurfaceFormat a и b равны.

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

Spec-Zone.ru

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