Класс 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 — формат буфера.
[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