Spec-Zone.ru › Qt 5.9

Класс QQuickFramebufferObject

Класс QQuickFramebufferObject — это вспомогательный класс для интеграции рендеринга OpenGL с использованием объекта буфера кадра (FBO) в Qt Quick. Подробнее...

Заголовок: #include <QQuickFramebufferObject>
qmake: QT += quick
С версии: Qt 5.2
Наследует: QQuickItem
  • Список всех членов, включая наследуемые

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

класс Renderer

Свойства

  • mirrorVertically : bool
  • textureFollowsItemSize : bool
  • 23 свойства унаследованы от QQuickItem
  • 1 свойство унаследовано от QObject

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

QQuickFramebufferObject(QQuickItem *parent = Q_NULLPTR)
virtual Renderer * createRenderer() const = 0
bool mirrorVertically() const
void setMirrorVertically(bool enable)
void setTextureFollowsItemSize(bool follows)
bool textureFollowsItemSize() const

Переопределённые открытые функции

virtual bool isTextureProvider() const
virtual void releaseResources()
virtual QSGTextureProvider * textureProvider() const
  • 95 открытых функций унаследованы от QQuickItem
  • 32 открытых функции унаследованы от QObject
  • 2 открытых функции унаследованы от QQmlParserStatus

Сигналы

void mirrorVerticallyChanged(bool)
void textureFollowsItemSizeChanged(bool)
  • 1 сигнал унаследован от QQuickItem
  • 2 сигнала унаследованы от QObject

Дополнительные унаследованные члены

  • 1 открытый слот унаследован от QQuickItem
  • 1 открытый слот унаследован от QObject
  • 11 статических открытых членов унаследованы от QObject
  • 33 защищённых функций унаследованы от QQuickItem
  • 9 защищённых функций унаследованы от QObject

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

Класс QQuickFramebufferObject — это удобный класс для интеграции рендеринга OpenGL с использованием объекта буфера кадра (FBO) в Qt Quick.

На большинстве платформ рендеринг будет выполняться в отдельной нити. По этой причине класс QQuickFramebufferObject обеспечивает чёткое разделение между реализацией элемента и рендерингом FBO. Вся логика элемента, такая как свойства и вспомогательные функции для QML, должны располагаться в подклассе класса QQuickFramebufferObject. Всё, что относится к рендерингу, должно располагаться в классе QQuickFramebufferObject::Renderer.

Для предотвращения гонок и проблем с чтением/записью из двух нитей важно, чтобы рендерер и элемент никогда не читали или не записывали общие переменные. Обмен данными между элементом и рендерером должен в основном происходить через функцию QQuickFramebufferObject::Renderer::synchronize(). Эта функция будет вызвана в нити рендеринга, в то время как нить GUI заблокирована.

Также возможно использовать очереди подключений или события для обмена данными между элементом и рендерером.

И рендерер, и FBO управляются памятью внутри.

Для рендеринга в FBO пользователь должен создать подкласс класса Renderer и переопределить его функцию Renderer::render(). Подкласс Renderer возвращается из createRenderer().

Размер FBO по умолчанию адаптируется к размеру элемента. Если предпочтительнее фиксированный размер, установите textureFollowsItemSize в false и верните нужную текстуру из QQuickFramebufferObject::Renderer::createFramebufferObject().

Начиная с Qt 5.4, класс QQuickFramebufferObject является поставщиком текстур и может использоваться напрямую в ShaderEffects и других классах, которые потребляют поставщиков текстур.

См. также Граф сцены — рендеринг FBO и Граф сцены и рендеринг.

Документация по свойству

mirrorVertically : bool

Это свойство управляет тем, следует ли отражать размер содержимого FBO по вертикали при отрисовке. Это позволяет легко интегрировать сторонний код рендеринга, который не соответствует стандартным ожиданиям.

Значение по умолчанию — false.

Это свойство было введено в Qt 5.6.

Функции доступа:

bool mirrorVertically() const
void setMirrorVertically(bool enable)

Сигнал уведомления:

void mirrorVerticallyChanged(bool)

textureFollowsItemSize : bool

Это свойство управляет тем, следует ли размер текстуры FBO за размерами элемента QQuickFramebufferObject. Когда это свойство ложно, FBO создаётся один раз при первом отображении. Если оно установлено в значение true, FBO будет пересоздаваться каждый раз, когда меняются размеры элемента.

Значение по умолчанию — true.

Функции доступа:

bool textureFollowsItemSize() const
void setTextureFollowsItemSize(bool follows)

Сигнал уведомления:

void textureFollowsItemSizeChanged(bool)

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

QQuickFramebufferObject::QQuickFramebufferObject(QQuickItem *parent = Q_NULLPTR)

Создаёт новый объект QQuickFramebufferObject с родителем parent.

[pure virtual] Renderer *QQuickFramebufferObject::createRenderer() const

Переопределите эту функцию для создания рендерера, используемого для рендеринга в FBO.

Эта функция будет вызвана в нити рендеринга, пока нить GUI заблокирована.

[virtual] bool QQuickFramebufferObject::isTextureProvider() const

Переопределено из QQuickItem::isTextureProvider().

[virtual] void QQuickFramebufferObject::releaseResources()

Переопределено из QQuickItem::releaseResources().

[virtual] QSGTextureProvider *QQuickFramebufferObject::textureProvider() const

Переопределено из QQuickItem::textureProvider().

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

Spec-Zone.ru

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