Spec-Zone.ru › Qt 5.6

Класс 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)
виртуальный Renderer * createRenderer() const = 0
bool mirrorVertically() const
void setMirrorVertically(bool enable)
void setTextureFollowsItemSize(bool follows)
bool textureFollowsItemSize() const

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

виртуальный bool isTextureProvider() const
виртуальный void releaseResources()
виртуальный QSGTextureProvider * textureProvider() const
  • 92 функции публичного доступа унаследованы от QQuickItem
  • 31 функция публичного доступа унаследована от 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 создаётся один раз при первом отображении. Если оно истинно, 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().

END_OF_DOCUMENT_MARKER

[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/archives/qt-5.6/qquickframebufferobject.html

Spec-Zone.ru

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