Spec-Zone.ru › Qt 5.15

Класс QSurfaceFormat

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

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

Этот класс был представлен в 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
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() контекста. Обратите внимание, что отсутствие установки этого флага не гарантирует, что потеря состояния контекста никогда не произойдёт. Кроме того, некоторые реализации могут выбрать уведомление о потере контекста независимо от этого флага. Платформы, которые поддерживают динамическое включение мониторинга потери контекста, такие как Windows с WGL или Linux/X11 (xcb) с GLX, будут отслеживать статус в каждом вызове makeCurrent(). См. 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 Отрисовка с использованием настольного 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)

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

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

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

Spec-Zone.ru

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