Spec-Zone.ru › Qt 5.9

Класс QSurfaceFormat

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

Заголовок: #include <QSurfaceFormat>
qmake: QT += gui
С момента версии: Qt 5.0
  • Список всех членов, включая унаследованные члены
  • Устаревшие члены

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

enum FormatOption { StereoBuffers, DebugContext, DeprecatedFunctions, ResetNotification }
flags FormatOptions
enum OpenGLContextProfile { NoProfile, CoreProfile, CompatibilityProfile }
enum RenderableType { DefaultRenderableType, OpenGL, OpenGLES, OpenVG }
enum SwapBehavior { DefaultSwapBehavior, SingleBuffer, DoubleBuffer, TripleBuffer }

Открытые функции

QSurfaceFormat()
QSurfaceFormat(FormatOptions options)
QSurfaceFormat(const QSurfaceFormat &other)
~QSurfaceFormat()
int alphaBufferSize() const
int blueBufferSize() const
int depthBufferSize() const
int greenBufferSize() const
bool hasAlpha() const
int majorVersion() const
int minorVersion() const
QSurfaceFormat::FormatOptions options() const
OpenGLContextProfile profile() const
int redBufferSize() const
RenderableType renderableType() const
int samples() const
void setAlphaBufferSize(int size)
void setBlueBufferSize(int size)
void setDepthBufferSize(int size)
void setGreenBufferSize(int size)
void setMajorVersion(int major)
void setMinorVersion(int minor)
void setOption(FormatOption option, bool on = true)
void setOptions(QSurfaceFormat::FormatOptions options)
void setProfile(OpenGLContextProfile profile)
void setRedBufferSize(int size)
void setRenderableType(RenderableType type)
void setSamples(int numSamples)
void setStencilBufferSize(int size)
void setStereo(bool enable)
void setSwapBehavior(SwapBehavior behavior)
void setSwapInterval(int interval)
void setVersion(int major, int minor)
int stencilBufferSize() const
bool stereo() const
SwapBehavior swapBehavior() const
int swapInterval() const
bool testOption(FormatOption option) const
QPair<int, int> version() const
QSurfaceFormat & operator=(const QSurfaceFormat &other)

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

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

Связанные внешние члены

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

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

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

Формат включает в себя размер цветовых буферов: красный, зеленый и синий; размер альфа-буфера; размер буферов глубины и трафарета; и количество выборок на пиксель для многократного сэмплирования. Кроме того, формат содержит параметры конфигурации поверхности, такие как профиль и версия OpenGL для рендеринга, включение или отключение стерео буферов и поведение обмена.

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

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.

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

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

QSurfaceFormat::QSurfaceFormat()

Создаёт QSurfaceFormat с инициализированными значениями по умолчанию.

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

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

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

OpenGLContextProfile QSurfaceFormat::profile() const

Получает настроенный профиль контекста OpenGL.

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

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

int QSurfaceFormat::redBufferSize() const

Получить размер красного канала буфера цвета в битах.

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

RenderableType QSurfaceFormat::renderableType() const

Получить тип рендерируемого объекта.

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

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

int QSurfaceFormat::samples() const

Возвращает количество выборок на пиксель при включенном многократном сэмплировании. По умолчанию многократное сэмплирование отключено.

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

void QSurfaceFormat::setAlphaBufferSize(int size)

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

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

void QSurfaceFormat::setBlueBufferSize(int size)

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

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

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

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

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

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

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

void QSurfaceFormat::setMajorVersion(int major)

Установить желаемую major версию OpenGL.

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

void QSurfaceFormat::setMinorVersion(int minor)

Установить желаемую minor версию OpenGL.

Версия по умолчанию — 2.0.

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

void QSurfaceFormat::setOption(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(OpenGLContextProfile profile)

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

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

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

void QSurfaceFormat::setRedBufferSize(int size)

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

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

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

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

SwapBehavior QSurfaceFormat::swapBehavior() const

Возвращает настроенное поведение обмена.

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

int QSurfaceFormat::swapInterval() const

Возвращает интервал обмена.

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

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

bool QSurfaceFormat::testOption(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.9/qsurfaceformat.html

Spec-Zone.ru

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