Spec-Zone.ru › Qt 5.6

Класс QPlatformGraphicsBuffer

Класс QPlatformGraphicsBuffer представляет собой абстракцию буфера графических данных для различных систем Windows Подробнее...

Заголовок: #include <QPlatformGraphicsBuffer>
qmake: QT += gui
С момента: Qt 5.5
Наследует: QObject
  • Список всех членов, включая унаследованные

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

Перечисление AccessType { None, SWReadAccess, SWWriteAccess, TextureAccess, HWCompositor }
Флаги AccessTypes
Перечисление Origin { OriginTopLeft, OriginBottomLeft }

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

Виртуальный ~QPlatformGraphicsBuffer()
Виртуальный bool bindToTexture(const QRect &rect = QRect()) const
int byteCount() const
Виртуальный int bytesPerLine() const
Виртуальный const uchar * data() const
Виртуальный uchar * data()
QPixelFormat format() const
AccessTypes isLocked() const
bool lock(AccessTypes access, const QRect &rect = QRect())
Виртуальный Origin origin() const
QSize size() const
void unlock()
  • 31 функция публичного доступа унаследована от QObject

Сигналы

void unlocked(AccessTypes previousAccessTypes)
  • 2 сигнала унаследованы от QObject

Защищенные функции

QPlatformGraphicsBuffer(const QSize &size, const QPixelFormat &format)
Виртуальный bool doLock(AccessTypes access, const QRect &rect = QRect()) = 0
Виртуальный void doUnlock() = 0
  • 9 защищенных функций унаследованы от QObject

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

  • 1 свойство унаследовано от QObject
  • 1 слот публичного доступа унаследован от QObject
  • 11 статических членов публичного доступа унаследованы от QObject

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

Класс QPlatformGraphicsBuffer представляет собой абстракцию буфера графических данных для различных систем Windows.

Разные платформы по-разному представляют графические буферы. На некоторых платформах можно создать один буфер, который можно привязать к текстуре, а также получить доступ к данным изображения в основной памяти. С другой стороны, на некоторых платформах вся абстракция графических буферов полностью скрыта.

QPlatformGraphicsBuffer — это абстракция одного буфера графических данных.

Нет публичного конструктора и публичной функции-фабрики.

QPlatformGraphicsBuffer предназначен для создания с использованием платформенно-специфических API, доступных из QtPlatformHeaders, или могут быть функции-аксессоры, аналогичные функции-аксессору QPlatformBackingstore.

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

Перечисление QPlatformGraphicsBuffer::AccessTypeФлаги QPlatformGraphicsBuffer::AccessTypes

Это перечисление описывает желаемый или предоставленный доступ к графическому буферу.

Постоянная Значение
QPlatformGraphicsBuffer::None 0x00
QPlatformGraphicsBuffer::SWReadAccess 0x01
QPlatformGraphicsBuffer::SWWriteAccess 0x02
QPlatformGraphicsBuffer::TextureAccess 0x04
QPlatformGraphicsBuffer::HWCompositor 0x08

Тип AccessTypes — это тип-синоним для QFlags<AccessType>. Он хранит логическое ИЛИ сочетание значений AccessType.

Перечисление QPlatformGraphicsBuffer::Origin

Это перечисление описывает начало содержимого буфера.

Постоянная Значение
QPlatformGraphicsBuffer::OriginTopLeft 1
QPlatformGraphicsBuffer::OriginBottomLeft 0

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

[protected] QPlatformGraphicsBuffer::QPlatformGraphicsBuffer(const QSize &size, const QPixelFormat &format)

Защищенный конструктор для инициализации закрытых членов.

size — размер буфера. format — формат буфера.

См. также size() и format().

[virtual] QPlatformGraphicsBuffer::~QPlatformGraphicsBuffer()

Виртуальный деструктор.

[virtual] bool QPlatformGraphicsBuffer::bindToTexture(const QRect &rect = QRect()) const

Привязывает содержимое этого буфера графических данных к текущей привязанной текстуре.

Эта функция должна завершиться неудачей для буферов, не способных заблокировать доступ к TextureAccess.

rect — подпрямоугольник, который требуется привязать к текстуре. Этот аргумент имеет не меньшее значение, что означает, что (если не все) больше части буфера может быть привязано к текстуре. Пустой QRect интерпретируется как весь буфер должен быть привязан.

Эта функция поддерживает только привязку буферов к текстурному целевому объекту GL_TEXTURE_2D.

Возвращает true при успехе, иначе false.

int QPlatformGraphicsBuffer::byteCount() const

Функция-аксессор для длины буфера данных. Эта функция является удобной функцией, которая умножает высоту буфера на bytesPerLine().

См. также data(), bytesPerLine() и size().

[virtual] int QPlatformGraphicsBuffer::bytesPerLine() const

Функция-аксессор для количества байтов на строку в буфере графических данных.

[virtual] const uchar *QPlatformGraphicsBuffer::data() const

Функция-аксессор для байтов буфера. Эта функция должна вызываться для буфера с заблокированным доступом SWReadAccess. Поведение не определено для изменения памяти, возвращенной при отсутствии блокировки доступа SWWriteAccess.

[virtual] uchar *QPlatformGraphicsBuffer::data()

Доступ к байтам буфера. Эта функция должна вызываться на буфере с блокировкой доступа SWReadAccess. Поведение не определено для изменения памяти, возвращенной при отсутствии SWWriteAccess.

[pure virtual protected] bool QPlatformGraphicsBuffer::doLock(AccessTypes access, const QRect &rect = QRect())

Этот метод должен быть переопределён подклассами. Если один из типов доступа access не может быть заблокирован, то все попытки должны завершиться неудачей, а функция должна вернуть false.

rect — подпрямоугольник, который необходимо заблокировать. Этот аргумент имеет не менее семантического значения, означающего, что можно заблокировать больше (если не весь) буфер. Пустой QRect должен интерпретироваться как необходимость блокировки всего буфера.

Безопасно вызвать isLocked() для проверки текущего состояния блокировки.

[pure virtual protected] void QPlatformGraphicsBuffer::doUnlock()

Эта функция должна снять все блокировки, установленные на буфере.

Безопасно вызвать isLocked() для проверки текущего состояния блокировки.

QPixelFormat QPlatformGraphicsBuffer::format() const

Доступ к формату пикселей буфера.

AccessTypes QPlatformGraphicsBuffer::isLocked() const

Функция для проверки, заблокирован ли буфер.

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

bool QPlatformGraphicsBuffer::lock(AccessTypes access, const QRect &rect = QRect())

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

access — требуемый тип доступа.

rect — подпрямоугольник, который необходимо заблокировать. Этот аргумент имеет не менее семантического значения, означающего, что можно заблокировать больше (если не весь) буфер. Пустой QRect интерпретируется как необходимость блокировки всего буфера.

Возвращает true при успешной блокировке всех типов доступа access, иначе — false и блокировки не получены.

[virtual] Origin QPlatformGraphicsBuffer::origin() const

Начальная точка содержимого графического буфера.

По умолчанию реализация — OriginTopLeft, так как это стандартная система координат Qt. Однако для большинства обычных OpenGL-текстур это будет OriginBottomLeft.

QSize QPlatformGraphicsBuffer::size() const

Доступ к размеру содержимого.

void QPlatformGraphicsBuffer::unlock()

Разблокирует текущую блокировку буфера.

Эта функция вызывает doUnlock и затем излучает сигнал unlocked с типами доступа AccessTypes из предыдущего вызова doUnlock.

[signal] void QPlatformGraphicsBuffer::unlocked(AccessTypes previousAccessTypes)

Сигнал, который излучается после вызова unlocked.

previousAccessTypes — типы доступа, заблокированные перед вызовом unlock.

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

Spec-Zone.ru

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