Spec-Zone.ru › Qt 5.12

Класс QSurfaceFormat

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

Заголовок: #include <QSurfaceFormat>
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()
QSurfaceFormat(QSurfaceFormat::FormatOptions options)
QSurfaceFormat(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 & operator=(const QSurfaceFormat &other)

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

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

Связанные свободные члены

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

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

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

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

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 Отрисовка с помощью Desktop 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 Это поведение обмена иногда используется, чтобы уменьшить риск пропуска кадра, когда скорость отрисовки едва держится за частотой обновления экрана. В зависимости от платформы, это также может привести к немного более эффективному использованию GPU благодаря улучшенному поведению конвейера. Трехкратное буферизация стоит дополнительных затрат памяти на кадр и задержки и может не поддерживаться в зависимости от базовой платформы.

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

QSurfaceFormat::QSurfaceFormat()

Конструирует QSurfaceFormat с инициализацией по умолчанию.

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

QSurfaceFormat::QSurfaceFormat(QSurfaceFormat::FormatOptions options)

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

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

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

Этот формат используется по умолчанию в 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.

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

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

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

void QSurfaceFormat::setStencilBufferSize(int size)

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

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

void QSurfaceFormat::setStereo(bool enable)

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

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

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

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

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

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

Связанные нечленные функции

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

Spec-Zone.ru

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