Spec-Zone.ru › Qt 5.13

Класс QSurfaceFormat

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

Заголовок: #include <QSurfaceFormat>
qmake: QT += gui
С версии: Qt 5.0

Этот класс был представлен в 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
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 сопоставляется.

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

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

Тип 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().

QSurfaceFormat::ColorSpace QSurfaceFormat::colorSpace() const

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

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

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

[static] 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)

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

Примечание: В macOS убедитесь, что установлены размеры всех цветовых каналов, в противном случае это значение не будет иметь эффекта. Если один из размеров буферов не задан, используется текущая глубина цвета экрана.

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

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

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

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

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

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

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

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

[static] 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)

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

Примечание: В macOS убедитесь, что установлены размеры всех цветовых каналов, в противном случае это значение не будет иметь эффекта. Если один из размеров буферов не задан, используется текущая глубина цвета экрана.

См. также 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 profile.

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

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

void QSurfaceFormat::setRedBufferSize(int size)

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

Примечание: В macOS убедитесь, что установлены размеры всех цветовых каналов, в противном случае это значение не будет иметь эффекта. Если один из размеров буферов не задан, используется текущая глубина цвета экрана.

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

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

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

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

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

void QSurfaceFormat::setSamples(int numSamples)

Устанавливает предпочтительное количество сэмплов на пиксель при включенном сэмплировании (multisampling) в numSamples. По умолчанию сэмплирование выключено.

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

void QSurfaceFormat::setStencilBufferSize(int size)

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

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

void QSurfaceFormat::setStereo(bool enable)

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

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

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

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

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

Устанавливает поведение обмена буферов (swap) для поверхности.

Поведение обмена буферов определяет, нужно ли использовать одно-, двойное или тройное буферирование. По умолчанию, 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 QSurfaceFormat::operator!=(const QSurfaceFormat &a, const QSurfaceFormat &b)

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

bool QSurfaceFormat::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.13/qsurfaceformat.html

Spec-Zone.ru

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