Spec-Zone.ru › Qt 5.12

Класс QQuickFramebufferObject

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

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

Типы публичного доступа

класс Renderer

Свойства

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

Функции публичного доступа

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

Переопределённые функции публичного доступа

virtual bool isTextureProvider() const override
virtual void releaseResources() override
virtual QSGTextureProvider * textureProvider() const override
  • 101 функция публичного доступа унаследована от QQuickItem
  • 31 функция публичного доступа унаследована от QObject
  • 2 функции публичного доступа унаследованы от QQmlParserStatus

Сигналы

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

Статические члены публичного доступа

const QMetaObject staticMetaObject
  • 9 статических членов публичного доступа унаследованы от QObject

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

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

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

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

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

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

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

И рендерер, и 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 создаётся один раз при первом отображении. Если оно истинно, FBO будет пересоздаваться каждый раз, когда размеры элемента изменяются.

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

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

bool textureFollowsItemSize() const
void setTextureFollowsItemSize(bool follows)

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

void textureFollowsItemSizeChanged(bool)

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

QQuickFramebufferObject::QQuickFramebufferObject(QQuickItem *parent = nullptr)

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

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

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

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

[override virtual] bool QQuickFramebufferObject::isTextureProvider() const

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

[override virtual] void QQuickFramebufferObject::releaseResources()

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

[override 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.12/qquickframebufferobject.html

Spec-Zone.ru

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